戌印-INUJIRUSHI- (Androidあれこれ)

Androidのプログラミングをメインにしてます。記事に貼られたソースコードはダブルクリックすることで行番号をはずしてコピーすることができます。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
10

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

インストール済みアプリ一覧取得 : PackageManager

デバイスにインストールされているアプリケーションに関連する情報は PackageManager クラスから取得することができます。

API Reference: PackageManager, ApplicationInfo

特定のアプリがインストール済みか確認するには次の記事を参照してください。
【関連記事】特定のアプリがインストール済みか確認する

■ 画面イメージ -----------------------------------------------
android_install_app.png

■ ソースコード -----------------------------------------
package jp.inujirushi.sample.activity;

import java.util.ArrayList;
import java.util.List;

import jp.inujirushi.sample.R;
import jp.inujirushi.sample.adapter.TwoLineImageAdapter;
import jp.inujirushi.sample.adapter.TwoLineImageItem;
import android.app.Activity;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.ListView;

public class SampleActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sample_listview);

// アプリ情報を設定するリストを生成する(独自のリストビューを使用しています)
List<TwoLineImageItem> appList = new ArrayList<TwoLineImageItem>();

// インストールされているアプリ情報を取得する
PackageManager manager = getPackageManager();
List<ApplicationInfo> infos = manager
.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo info : infos) {

// プリインストールされているアプリを除外する
// if ((info.flags & ApplicationInfo.FLAG_SYSTEM) ==
// ApplicationInfo.FLAG_SYSTEM)
// continue;

// アイコンを取得する
Drawable icon = info.loadIcon(manager);

// アプリ名を取得する
CharSequence appName = info.loadLabel(manager);

// パッケージ名を取得する
String packageName = info.packageName;

// リストに追加する
appList.add(new TwoLineImageItem(icon, appName, packageName));
}

// リストビューにアダプタを設定する
ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(new TwoLineImageAdapter(this, appList));
}
}

インストールされているアプリにはプリインストールされているものも含まれているため、大量のアプリ一覧が表示されます。
これらは37~40行目のコメントアウトを解除することで表示から除外できます。
// プリインストールされているアプリを除外する
if ((info.flags & ApplicationInfo.FLAG_SYSTEM) == ApplicationInfo.FLAG_SYSTEM)
continue;


表示につかっている独自のリストビューの作成方法は以下の記事を参考にしてください。
(記事は1行表示用なのでこれを2行表示に修正すればOK)
【関連記事】ListView をカスタマイズする
スポンサーサイト

Comments

Leave a Comment


Body
プロフィール

とむ・やむくん

Author:とむ・やむくん
管理人について

Windows 7 / 64bit
Eclipse 4.2 Juno (日本語パッチ済)

スポンサーサイト
最新トラックバック
検索フォーム
ブロとも申請フォーム
QRコード
QR
Twitter
2013/01/04 19:00 カウント開始

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。