Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google Play services: How to handle devices that do not have Google Play?

Google Play services is an Android library whose goal is to provide:

  • OAuth 2.0 authentication
  • Google+ sign-in
  • Google+ +1 button
  • various other goodies

If I were to use it (for instance because I want Google+ sign-in), what would happen to users whose device does not have Google Play? (Nook, Cyanogenmod, China Mobile, old devices, maybe Huawei?, etc)

QUESTION: Will my app become incompatible with such devices? Will it be displayed as compatible but then crash, or not work?
Is there a best practice to keep this in mind when using Google Play services?

like image 591
Nicolas Raoul Avatar asked Nov 02 '12 08:11

Nicolas Raoul


People also ask

How do I update Google Play Services without Google Play?

To update Google Play Services on your Android device, head to the "Apps & Notifications" menu in your settings. Google Play Services let your Android apps connect to the internet and communicate with Google. Updating Google Play Services can fix app issues, and help your Android device run faster.

Does Google Play Services require Google Play?

Google Play Services are an essential part of the Android operating system. They allow many apps, including third-party apps and games, to exchange information with Google. This can include getting directions from Google Maps, making a Google search, signing into your Google account, and more.


2 Answers

GooglePlayServicesUtil.isGooglePlayServicesAvailable(android.content.Context) 

is deprecated!

Use:

 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();         } 
like image 113
Maxi Avatar answered Sep 23 '22 01:09

Maxi


If the feature from Google Play Services is essential for your app there would be no way to get your App working.

You can check if the services are enabled from within your app with GooglePlayServicesUtil.isGooglePlayServicesAvailable(android.content.Context)
which returns ConnectionResult.SUCCESS if Play Services is available.

You can now try to convince the user to install it (if possible) or disable the feature that is using the service.

As the Google Play Services is not a feature declared in the manifest your app should install fine on any device but may crash later on if you are using the APIs without checking if they are available.

You can try the behaviour with the emulator. Just create an AVD without the Google APIs and put your App on it.

like image 26
Janusz Avatar answered Sep 20 '22 01:09

Janusz