2

「表示」というメニュー オプションがあり、アプリケーション com.android.display が画像を表示するタスクを実行しているとします。apk com.android.display がデバイスにインストールされていない場合、メニュー オプション「表示」が表示されます。しかし、それは役に立たないので、このapkがデバイスにインストールされている場合にのみ、「表示」メニューオプションのみが表示されるようにしたいと考えています。Android OSでこれを達成する方法はありますか?

4

2 に答える 2

1

この特定のソリューションは、AndroidのGoogleサイトでのハウツーです。

特定のアプリがユーザーのデバイスにインストールされているかどうかを知る必要がある場合は、PackageManagerを使用できます。Contextクラス(アクティビティやサービスなど)から、getPackageManager()を呼び出すことができます。これにより、さまざまなメソッドが提供されます。その1つがgetPackageInfo()です。以下はあなたが使うかもしれない方法です。あなたはそれをこのように呼ぶかもしれません:

isAppInstalled("com.simexusa.campusmaps_full");

private boolean isAppInstalled(String uri) {
   PackageManager pm = getPackageManager();
   boolean installed = false;
   try {
      pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
      installed = true;
   } catch (PackageManager.NameNotFoundException e) {
      installed = false;
   }
   return installed;
}
于 2012-08-08T04:56:59.153 に答える
0

これにはいくつかの方法があります。

最初の、おそらく最良の方法は、すべての場合にオプションを表示することです。他の APK がインストールされていない場合、インテントを送信してアクティブ化しようとすると、Android は例外をスローします。単純にこの例外をキャッチし、不足しているアプリケーションをインストールできる市場にユーザーを誘導することを提案します。このようにして、ユーザーは追加機能のオプションがあることを認識し、かなり簡単にインストールできます。

元のルートに固執する場合は、上記のソリューションを採用しません。同じ機能が複数の APK で提供されている可能性があるためです。特定の APK を確認すると、ユーザーは同じインテントを処理する別の APK を持っている可能性があり、サポートされているにもかかわらず機能を提供していません。

代わりに、特定のインテントにハンドラーがあるかどうかを確認します。これを行うコードはこちらにあります

シャチャー

于 2012-08-08T05:02:45.070 に答える