戌印-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
08

スポンサーサイト

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

特定のアプリがインストール済みか確認する

デバイスに特定のアプリがインストールされているかは、インストール済みアプリの取得と同様に PackageManager クラスを使います。

API Reference: PackageManager, ResolveInfo

■ 画面イメージ -----------------------------------------------
android_install_app_search.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.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
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>();

// 取得したいアプリを指定する(明示的・暗黙的どちらもOK)
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER); // ← 起動アプリのみ取得するために指定
intent.addCategory(Intent.CATEGORY_BROWSABLE);

// アプリ情報を取得する
PackageManager manager = getPackageManager();
List<ResolveInfo> resolveInfos = getPackageManager()
.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);

// アプリ情報をリストに追加する
if (!resolveInfos.isEmpty()) {
for (ResolveInfo info : resolveInfos) {
// アイコンを取得する
Drawable icon = info.loadIcon(manager);

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

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

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

// リストビューにアダプタを設定する
ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(new TwoLineImageAdapter(this, appList));
}
}
※ 表示につかっている独自のリストビューの作成方法は以下の記事を参考にしてください。
(記事は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ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。