どうすればそれを確認できますか?PackageManager を使用する必要がありますか? ありがとう:D
2103 次
2 に答える
2
私はそれをこのようにチェックします(戻り値がnullと等しくないかどうかをチェックします):
public static Intent findFacebookClient(Context con)
{
final String[] FacebookApps = {"com.facebook.android", "com.facebook.katana"};
Intent facebookIntent = new Intent();
facebookIntent.setType("text/plain");
final PackageManager packageManager = con.getPackageManager();
List<ResolveInfo> list = packageManager.queryIntentActivities(facebookIntent, PackageManager.MATCH_DEFAULT_ONLY);
for (int i = 0; i < FacebookApps.length; i++)
{
for (ResolveInfo resolveInfo : list)
{
String p = resolveInfo.activityInfo.packageName;
if (p != null && p.startsWith(FacebookApps[i]))
{
facebookIntent.setPackage(p);
return facebookIntent;
}
}
}
return null;
}
于 2012-10-04T08:26:38.030 に答える
1
final PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm
.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
Log.d(TAG, "Installed package : " + packageInfo.packageName);
}
次にpackageInfo.packageName
、そのアプリケーションのパッケージ名を含む文字列と等しいかどうかを確認できます。
于 2012-10-04T08:14:22.420 に答える