2012-02-15 81 views
1

有没有方法可以通过编程检查Android设备是否运行Google服务?如果设备(如Kindle Fire和Nook)没有所需的Google服务,我有一个使用C2DM的应用程序,并希望禁用包括此选项的菜单选项。在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

但是我不确定过去有哪些“Google服务”,但是在测试服务是否正在运行时,我发现这个功能可靠。通过将“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 2012-02-16 15:44:34

相关问题