如何检查是否安装了Flash?

时间:2010-12-16 08:53:31

标签: android flash

我正在使用此代码段来检查是否安装了应用/活动:

    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");
}

在上面的示例中,它检查是否安装了条形码扫描仪应用程序,这样可以正常工作。 但是,如果我尝试使用com.adobe.flashplayer检查Adobe Flashplayer,则它不起作用并始终返回false。

是否有更好/更可靠的方法来检查Flash?

1 个答案:

答案 0 :(得分: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;
    }
   }

(作为一个额外的奖励,我们也得到确切的版本号)