2012-11-02 11 views
22

Google Play services ist eine Android-Bibliothek, deren Ziel es ist, zur Verfügung zu stellen:Google Play-Dienste: Umgang mit Geräten, auf denen Google Play nicht verfügbar ist

Wenn ich

  • OAuth 2.0-Authentifizierung
  • Google+ Log-in
  • Google+ +1 Button
  • verschiedene andere Leckereien Um es zu verwenden (z. B. weil ich Google+ anmelden möchte), was passiert mit Nutzern, auf deren Gerät Google Play nicht verfügbar ist? (Nook, Cyanogenmod, China Mobile, alte Geräte, etc.)

    FRAGE: Wird meine App inkompatibel mit solchen Geräten? Wird es als kompatibel angezeigt, stürzt aber ab oder funktioniert nicht?
    Gibt es eine Best Practice, um dies bei der Nutzung von Google Play-Diensten zu berücksichtigen?

Antwort

23

Wenn die Funktion von Google Play Services für Ihre App unerlässlich ist, können Sie Ihre App nicht nutzen.

Sie überprüfen können, ob die Dienste aus Ihrer App mit GooglePlayServicesUtil.isGooglePlayServicesAvailable(android.content.Context)
aktiviert sind, die ConnectionResult.SUCCESS zurückgibt, wenn Play Services zur Verfügung steht.

Sie können nun versuchen, den Benutzer davon zu überzeugen, es zu installieren (wenn möglich) oder die Funktion zu deaktivieren, die den Dienst verwendet.

Da es sich bei den Google Play-Diensten nicht um eine im Manifest deklarierte Funktion handelt, sollte Ihre App auf jedem Gerät ordnungsgemäß installiert werden. Sie kann jedoch später abstürzen, wenn Sie die APIs verwenden, ohne zu prüfen, ob sie verfügbar sind.

Sie können das Verhalten mit dem Emulator versuchen. Erstellen Sie einfach einen AVD ohne die Google APIs und legen Sie Ihre App darauf.

+1

Diese Methode wurde verschoben und veraltet. Siehe unten die Antwort von @ Maxi für die neue Methode: http://stackoverflow.com/a/34943703/1139908 – karl

-2

Wenn Sie irgendwie Play-Dienste erforderlich sind, um zu verwenden, oder wenn Sie eine Legacy-Anwendung verwalten, die Anrufe macht Dienste zu spielen, dann würde ich diese Strategie empfehlen:

  1. auf app starten, prüfen Sie, ob Play Services ist verfügbar oder nicht
  2. Falls nicht verfügbar, umleiten Play Services ruft NOGAPP

NOGAPP ist eine Open-Source-Implementierung von Google Play-Dienste.
Es fehlen viele Funktionen, aber ist in aktiver Entwicklung. Viele Features sind immer noch Stubs.

Für Standortdienste gibt es LOST, einen Drop-in-Ersatz für die Google Play-Dienststandort-APIs.

Sie App funktioniert möglicherweise nicht perfekt, aber zumindest ist es besser als Absturz.

Natürlich ist es am besten, Google Play Services NICHT von Anfang an zu verwenden.

22
GooglePlayServicesUtil.isGooglePlayServicesAvailable(android.content.Context) 

ist veraltet!

Verwendung:

GoogleApiAvailability api = GoogleApiAvailability.getInstance(); 
     int code = api.isGooglePlayServicesAvailable(activity); 
     if (code == ConnectionResult.SUCCESS) { 
      // Do Your Stuff Here 
     } else { 
      AlertDialog alertDialog = 
       new AlertDialog.Builder(activity, R.style.AppCompatAlertDialogStyle).setMessage(
         "You need to download Google Play Services in order to use this part of the application") 
         .create(); 
      alertDialog.show(); 
     } 
+0

Sie müssen keinen eigenen Dialog erstellen, verwenden Sie GoogleApiAvailability.getInstance(). GetErrorDialog (Aktivität, Code, 0) .show (); – Kyle