检查Google Play服务是否启用FCM

问题描述:

如果我想使用FCM,是否需要检查Google Play服务是否启用?我的应用必须支持OS 4.0及以上版本。它将通过Play商店分发,所以我认为Google Play服务应该默认在用户的设备上启用。检查Google Play服务是否启用FCM

+0

的可能的复制[火力地堡?我怎样才能确保与各种版本的谷歌Play服务的兼容性](https://stackoverflow.com/questions/42848522/firebase - 如何-可以-I-确保兼容性与 - 各种版本 - 的 - 谷歌播放-SE) –

文档说:

FCM客户需要运行Android 4.0或更高版本的设备也 有谷歌播放安装商店应用,或者仿真器上运行 的Android 4.0与谷歌的API。

此外:

应用程序依赖于播放服务SDK访问谷歌播放 服务功能前,应经常检查设备 一个兼容的谷歌Play服务的APK。建议在两个位置执行此操作: 主要活动的onCreate()方法和onResume()方法。在onCreate()中检查 可确保在没有 成功检查的情况下无法使用该应用程序。 onResume()中的检查可确保如果用户 通过其他方式(例如通过 后退按钮)返回到正在运行的应用程序,该检查仍会执行。

因此,您应该经常检查Google Play服务,但如果您通过Play商店分发您的应用程序,则可以安全地说已安装Play服务。

Play服务有不同的状态。您可以检查ConnectionResult.SUCCESS。确切的说,你可以使用GPS检查状态

 private void checkPlayService() { 
     int isGPSAvailable = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(MainActivity.this); 

      Toast.makeText(this,"isGPSAvailable " + isGPSAvailable,Toast.LENGTH_SHORT).show(); 
      switch (isGPSAvailable) 
      { 
       case ConnectionResult.API_UNAVAILABLE: 
        //API is not available 
        break; 
       case ConnectionResult.NETWORK_ERROR: 
        //Network error while connection 
        break; 
       case ConnectionResult.RESTRICTED_PROFILE: 
        //Profile is restricted by google so can not be used for play services 
        break; 
       case ConnectionResult.SERVICE_MISSING: 
        //service is missing 
        break; 
       case ConnectionResult.SIGN_IN_REQUIRED: 
        //service available but user not signed in 
        break; case ConnectionResult.SERVICE_INVALID: 
        // The version of the Google Play services installed on this device is not authentic 
        break; 
       case ConnectionResult.SUCCESS: 
        break; 
      } 
}