0

カスタムランチャーアプリケーションに取り組んでいます。「デバイスにインストールされているカメラ、メッセージ、またはブラウザ アプリケーションの数」などの情報を取得したいのですが、それはデフォルトまたはサード パーティのアプリケーションである可能性がありますか? これについて何かアイデアがあれば、私に提案してください。

前もって感謝します

4

2 に答える 2

3

PackageManagerインストールされているアプリケーションについて調べるために使用できます。ただし、「カメラ」、「メッセージ」、「ブラウザ」のどれであるかを確実に判断する方法はありません。

于 2012-05-09T11:28:04.227 に答える
0

PackageManager必要な情報を取得するには、クラスとそれが提供するその他のものを使用する必要があります。たとえば、次のコードは、使用可能な「アプリケーション」のリストを取得します。つまり、それぞれのAndroidManifestファイルでLaunch Intentを使用して定義されたアクティビティと、それらを含む.appファイル、ランチャーラベル、アイコンなどを取得します。

PackageManager pm = getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
String _label, _class, _src;
Drawable _icon;

for (ResolveInfo rInfo : pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED)) {
    if (pm.getLaunchIntentForPackage(rInfo.activityInfo.packageName) == null) {
        continue;
    }
    _class = rInfo.activityInfo.packageName;
    _label = rInfo.activityInfo.loadLabel(pm).toString();
    _src = rInfo.activityInfo.applicationInfo.sourceDir;
    _icon = rInfo.activityInfo.loadIcon(pm);

    Log.d("PackageList", "label: " + _label + ", package: " + _class + ", sourceDir: " + _src + ", icon: " + (_icon == null ? "blank" : "present"));
}
于 2012-05-09T11:29:14.727 に答える