2012-02-15 6 views
1

Android搭載端末でGoogleサービスが実行されているかどうかをプログラムで確認する方法はありますか?私はC2DMを利用するアプリケーションを持っており、Kindle FireやNookなどのデバイスに必要なGoogleサービスがない場合、これを含むメニューオプションを無効にしたいと考えています。AndroidデバイスでGoogleサービスを検出する

答えて

3
public static boolean doesContainGsfPackage(Context context) { 
     PackageManager pm = context.getPackageManager(); 
     List<PackageInfo> list = pm.getInstalledPackages(0); 

     for (PackageInfo pi : list) { 
      if(pi.packageName.equals(ACCUWX.GSF_PACKAGE)) return true; // ACCUWX.GSF_PACKAGE = com.google.android.gsf 

     } 

     return false; 
    } 
1

しかし、「サービス」が実行されているかどうかをテストするとき、私はこの機能が信頼できることがわかっています。 「some.package.name.MyService」をGoogleサービスのパッケージ名に置き換えることによって、実行中かどうかを確認することができます。

private boolean isMyServiceRunning() { 
     ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); 
     for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { 
      if ("some.package.name.MyService".equals(service.service.getClassName())) { 
       return true; 
      } 
     } 
     return false; 
    } 
+0

私は含むので、私は投稿のソリューションを使用したパッケージを見つける必要がありました。試してくれてありがとう! – taraloca

関連する問題