私の最終的な目標は、ユーザーが自分のアプリから別のアプリ (Google chrome など) を開くことができるようにすることです。私の試みは、インストールされているすべてのアプリとそのパッケージ名を含む配列を作成し、インテントを使用してパッケージ名を使用してサードパーティ アプリを開くことです。
電話でパッケージ名を見つける方法がわかりません。誰かが私を正しい方向に導くことができますか?
私の最終的な目標は、ユーザーが自分のアプリから別のアプリ (Google chrome など) を開くことができるようにすることです。私の試みは、インストールされているすべてのアプリとそのパッケージ名を含む配列を作成し、インテントを使用してパッケージ名を使用してサードパーティ アプリを開くことです。
電話でパッケージ名を見つける方法がわかりません。誰かが私を正しい方向に導くことができますか?
ダウンロードしたアプリケーション (システム アプリケーションではなく) のみを取得して表示する場合は、このコードを使用するだけで問題が解決します。
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;
}
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));
}
これを使用し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();