2

私の最終的な目標は、ユーザーが自分のアプリから別のアプリ (Google chrome など) を開くことができるようにすることです。私の試みは、インストールされているすべてのアプリとそのパッケージ名を含む配列を作成し、インテントを使用してパッケージ名を使用してサードパーティ アプリを開くことです。

電話でパッケージ名を見つける方法がわかりません。誰かが私を正しい方向に導くことができますか?

4

3 に答える 3

1

ダウンロードしたアプリケーション (システム アプリケーションではなく) のみを取得して表示する場合は、このコードを使用するだけで問題が解決します。

    List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
    for (int i = 0; i < packs.size(); i++) 
    {
        PackageInfo packageInfo = packs.get(i);
        ApplicationInfo applicationInfo = packageInfo.applicationInfo;
        // Skips the system application (packages)
        if ( applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 1)
        {
            continue;
        }

        String name = packageInfo.packageName;
        String versionName = packageInfo.versionName;
        String versionCode = packageInfo.versionCode;
       }
于 2014-07-10T12:07:01.150 に答える
1

使用PackageManager:

PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) 
{
    Log.d(TAG, "Installed package :" + packageInfo.packageName);
    Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName)); 
}
于 2013-11-06T18:19:39.303 に答える
0

これを使用しintentて、インストールされているアプリのリストを取得します

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

または[package manager][1]私が好むものを使用して

final PackageManager pm = getPackageManager();
//get a list of installed apps.
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

for (ApplicationInfo packageInfo : packages) {
    Log.d(TAG, "Installed package :" + packageInfo.packageName);
    Log.d(TAG, "Launch Activity :" + pm.getLaunchIntentForPackage(packageInfo.packageName)); 
}
// the getLaunchIntentForPackage returns an intent that you can use with startActivity()

そしてpackage nameこれを利用するために

String packagename= MyApp.getContext().getPackageName();
于 2013-11-06T18:19:03.160 に答える