我正在使用此代码段来检查是否安装了应用/活动:
public static boolean isIntentAvailable(Context context, String action) {
final PackageManager packageManager = context.getPackageManager();
final Intent intent = new Intent(action);
List<ResolveInfo> list =
packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}
public static boolean isScanAvailable(Context context) {
return isIntentAvailable(context, "com.google.zxing.client.android.SCAN");
}
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,它检查是否安装了条形码扫描仪应用程序,它可以正常工作.但是,如果我尝试检查Adobe Flashplayer使用com.adobe.flashplayer它不起作用并始终返回false.
是否有更好/更可靠的方法来检查Flash?
end*_*eit 14
嗯,是的.我上面发布的代码会对Intent进行检查,哪些不适用于flashplayer(我猜没有公共意图).
更明显的方法是使用getPackageInfo()哪个工作正常:
public static boolean isFlashAvailable(Context context) {
String mVersion;
try {
mVersion = context.getPackageManager().getPackageInfo(
"com.adobe.flashplayer", 0).versionName;
Log.d("Flash", "Installed: " + mVersion);
return true;
} catch (NameNotFoundException e) {
Log.d("Flash", "Not installed");
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
(作为额外的奖励我们也得到确切的版本号)
| 归档时间: |
|
| 查看次数: |
2313 次 |
| 最近记录: |