如何检查 Android 上是否安装了 Flash 播放器 [英] How to check if the Flash players is installed on Android

查看:67
本文介绍了如何检查 Android 上是否安装了 Flash 播放器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果从 Android Market 下载并安装了 Adob​​e Flash Player 10.1 (https://market.android.com/details?id=com.adobe.flashplayer),如何在 Android 网络浏览器中轻松检查 Javascript?

how can I easily check in Javascript in the Android web browser if the Adobe Flash Player 10.1 (https://market.android.com/details?id=com.adobe.flashplayer) was downloaded from Android Market and installed?

--

更新:感谢回复,但我需要 Javascript 的检查代码,因为我正在做基于网络(HTML/Javascript/CSS)的解决方案,而不是本机Java 应用程序.Web 应用程序的一小部分是在 Flex 中完成的,因此 .swf 文件显示在 <div> 元素中,但在此之前我想检查是否安装了 Flash Player.

Update: Thanks for replies, but I need the check code for Javascript, since I am doing the web based (HTML/Javascript/CSS) solution, not native Java application. Small part of the web application is done in Flex, so .swf file is displayed in <div> element, but prior of doing that I would like to check if Flash Player is installed or not.

推荐答案

您是否有任何特殊原因需要从 Javascript 而非 Java 代码进行检查?

Is there any special reason you need to check from Javascript and not from the Java code?

从 Java 代码中,您可以执行以下操作:

From Java code, you can do something like this:

    Intent intent = new Intent();

    intent.setComponent(new ComponentName("com.adobe.flashplayer", "com.adobe.flashplayer.FlashExpandableFileChooser"));
    PackageManager pm = getPackageManager();
    List<ResolveInfo> activities = pm.queryIntentActivities(intent, 0);
    if (activities != null && activities.size() > 0) {
        Toast.makeText(this, "Flash is installed!", Toast.LENGTH_LONG).show();
    }
    else {
        Toast.makeText(this, "Flash not installed!", Toast.LENGTH_LONG).show();
    }

在我的 HTC Desire 上运行良好.

Works well on my HTC Desire.

如果您想知道我从哪里获取 com.adobe.flashplayer.FlashExpandableFileChooser 类名,我只是从 Flash 播放器的 AndroidManifest.xml 中获取它.

If you're wondering where did I take the com.adobe.flashplayer.FlashExpandableFileChooser class name from, I simply took it from the Flash player's AndroidManifest.xml.

看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<manifest
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:versionCode="101106016"
        android:versionName="10.1.106.16"
        package="com.adobe.flashplayer"
        >
        <application
                android:label="Adobe Flash Player 10.1"
                android:icon="@7F020000"
                >
                <activity
                        android:name="com.adobe.flashplayer.FlashExpandableFileChooser"
                        >
                        <intent-filter
                                >
                                <action
                                        android:name="android.intent.action.MAIN"
                                        >
                                </action>
                                <category
                                        android:name="android.intent.category.DEFAULT"
                                        >
                                </category>
                                <category
                                        android:name="FlashExpandableFileChooser"
                                        >
                                </category>
                        </intent-filter>
                </activity>
                <service
                        android:name="com.adobe.flashplayer.FlashPaintSurface"
                        >
                        <intent-filter
                                >
                                <action
                                        android:name="android.webkit.PLUGIN"
                                        >
                                </action>
                        </intent-filter>
                        <meta-data
                                android:name="type"
                                android:value="native"
                                >
                        </meta-data>
                </service>
        </application>
        <uses-permission
                android:name="android.webkit.permission.PLUGIN"
                >
        </uses-permission>
        <uses-sdk
                android:minSdkVersion="8"
                android:targetSdkVersion="5"
                android:maxSdkVersion="10"
                >
        </uses-sdk>
</manifest>

您可以按照此处的说明操作,了解如何调用此代码来自您的 JavaScript 代码.具体看setJavaScriptInterface方法

You can follow the instructions here on how to call this code from your JavaScript code. Specifically look at the setJavaScriptInterface method

要直接从 JavaScript 检测,请使用以下代码段:

To detect directly from JavaScript, use this snippet:

flashInstalled = false;
if (navigator.plugins && navigator.plugins.length) {
  for (n = 0; n < navigator.plugins.length; n++) {
    if (navigator.plugins[n].name.indexOf('Shockwave Flash') != -1) {
        flashInstalled = true;
        break;
    }
}

这篇关于如何检查 Android 上是否安装了 Flash 播放器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆