0

ギャラリー、連絡先、ダウンロード、電子メールなど、アプリケーションが Android に同梱されているかどうかを確認できるかどうか疑問に思っています。これらの種類のアプリケーションはすべて、作成中のリストから除外したいものです。名前をハードコーディングしたくありません。

これは、アプリケーション名を取得するために使用しているコードです。

    final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
    mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    final List pkgList = getApplicationContext().getPackageManager().queryIntentActivities(mainIntent, 0);

pkgList には ResolveInfo オブジェクトが含まれています。

編集:

アプリケーションが Android OS の一部であるかどうかを確認する 1 つの方法は、ResolveInfo.activityInfo.applicationInfo.packageName に "com.android" char seq. が含まれているかどうかを確認することですが、より洗練されたソリューションに興味があります。

4

1 に答える 1

1

この回答を参照してください。

基本的に、これは:

PackageManager pm = getPackageManager();

//Gets the info for all installed applications
List<ApplicationInfo> apps = pm.getInstalledApplications(0);

for(ApplicationInfo app : apps) {
    if((app.flags & ApplicationInfo.FLAG_SYSTEM) == 1) {
        //It's a pre-installed app
    } else if ((app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 1) {
        //It's a pre-installed app with a market update installed
    }
}
于 2012-10-25T16:51:31.933 に答える