class MyActivity extends Activity {
final int ANY_INTEGER_REALLY = 16041982;
final int REQUEST_CODE_GMS_CHECK = ANY_INTEGER_REALLY;
final int AVAILABLE = Activity.RESULT_OK;
final int UNAVAILABLE = Activity.RESULT_FIRST_USER + 1;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null) {
startGmsCheck();
}
}
void startGmsCheck() {
final com.google.android.gms.common.GoogleApiAvailability apiAvailability = com.google.android.gms.common.GoogleApiAvailability.getInstance();
final int availabilityCheckResult = apiAvailability.isGooglePlayServicesAvailable(this);
if (availabilityCheckResult == com.google.android.gms.common.ConnectionResult.SUCCESS) {
onActivityResult(REQUEST_CODE_GMS_CHECK, AVAILABLE, null);
} else if (
apiAvailability.isUserResolvableError(availabilityCheckResult)
&& apiAvailability.showErrorDialogFragment(
this, availabilityCheckResult, REQUEST_CODE_GMS_CHECK)) {
// user can do something about the missing GMS on the device -> receive the result via the activity's onActivityResult()
} else {
onActivityResult(
REQUEST_CODE_GMS_CHECK, UNAVAILABLE, null);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_GMS_CHECK) {
if (resultCode == AVAILABLE) {
continueWithGmsFeatures();
} else {();
continueWithoutAnyMobileServicesFeatures();
}
}
}
}
}