2011-02-06 13 views
3

Adob​​e Flash Player 10.1(https://market.android.com/details?id=com.adobe)の場合は、AndroidウェブブラウザでJavascriptを簡単にチェックインするにはどうすればよいですか.flashplayer)がAndroid Marketからダウンロードされ、インストールされましたか?Flash PlayerがAndroidにインストールされているかどうかを確認する方法

-

更新:回答のおかげで、私は、Webベース(HTML/Javascriptを/ CSS)解決策ではなく、ネイティブJavaアプリケーションをやっているので、私は、Javascriptをのチェックコードが必要です。 Webアプリケーションの小さな部分はFlexで行われるため、.swfファイルは<div>要素で表示されますが、その前にFlash Playerがインストールされているかどうかを確認したいと思います。

+0

を行うための別のアプローチ更新を持っている場合は、にそれらを編集してくださいあなたの元の質問。私は今度あなたのためにこれをする自由を取った。ありがとうございました。 – Sampson

答えて

4

JavaコードからではなくJavascriptからチェックする必要がある特別な理由はありますか?

Javaコードから

、あなたはこのような何かを行うことができます。

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の欲望に適しています。

どこからcom.adobe.flashplayer.FlashExpandableFileChooserクラス名を取得したのか疑問がある場合は、Flash Playerの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コードから、このコードを呼び出す方法に関する指示hereに従うことができます。 は、具体的にこのスニペットを使用して、JavaScriptのから直接検出するためにsetJavaScriptInterface方法

を見て:

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; 
    } 
} 
+0

こんにちは、返信ありがとう、私はWebアプリケーションをやっているので、私はJavascriptのコードスニペットが必要です - 私の答えは下記を参照してください。 – STeN

+0

答えに純粋なJavaScriptコードを追加しました。それはどんなWebKitベースのブラウザ(そして一般的にどんなネットスケープ互換ブラウザでも動作します)。 – Lior

+0

Javaコードの回答については、[Javaの回答]の[stackoverflow](http://stackoverflow.com/questions/4458930/how-to-check-if-flash-is-installed/4518006#4518006)を参照してください。 FlashExpandableFileChooser "という名前です。 – resnbl

0

同じ仕事

boolean flashInstalled = false; 
    try { 
     PackageManager pm = getPackageManager(); 
     ApplicationInfo ai = pm.getApplicationInfo("com.adobe.flashplayer", 0); 
     if (ai != null) 
     flashInstalled = true; 
    } catch (NameNotFoundException e) { 
     flashInstalled = false; 
    } 
関連する問題