Saya mencoba menggunakan Layanan Google Play di aplikasi Android saya. Seperti yang dikatakan dokumen Google, kita perlu memeriksa apakah Google API tersedia sebelum menggunakannya. Saya telah mencari cara untuk memeriksanya. Inilah yang saya dapatkan:
private boolean checkPlayServices() {
int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (resultCode != ConnectionResult.SUCCESS) {
if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {
GooglePlayServicesUtil.getErrorDialog(resultCode, this,
PLAY_SERVICES_RESOLUTION_REQUEST).show();
} else {
Log.i(TAG, "This device is not supported.");
finish();
}
return false;
}
return true;
}
Tetapi ketika saya membuka halaman GooglePlayServicesUtil Google Api, https://developers.google.com/android/reference/com/google/android/gms/common/GooglePlayServicesUtil
Saya menemukan semua fungsi sudah usang . Misalnya metode
GooglePlayServicesUtil.isGooglePlayServicesAvailable (tidak digunakan lagi)
Dan Google merekomendasikan untuk menggunakan:
GoogleApiAvailability.isGooglePlayServicesAvailable .
Namun, ketika saya mencoba menggunakan GoogleApiAvailability.isGooglePlayServicesAvailable, saya mendapatkan pesan kesalahan:
GooglePlayServicesUtil
hilang (yang tampaknya seperti praktik yang buruk untuk pembaruan "kecil") tetapi saya tidakGoogleApiAvailability
ingin menggunakannya sebagai pengganti.Jawaban:
Saya sudah menemukan solusinya. Di
GoogleApiAvailability
, semua metode adalah metode publik, sedangkan diGooglePlayServicesUtil
semua metode adalah fungsi publik statis.Jadi untuk menggunakan GoogleApiAvailability, cara yang benar adalah:
sumber
private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 9000;
Kelas GooglePlayServicesUtil seharusnya tidak digunakan lagi!
Berikut adalah bagaimana kelas GoogleApiAvailability dapat digunakan sebagai gantinya - ketika misalnya GCM (atau layanan Google lainnya) diperlukan:
MEMPERBARUI:
REQUEST_GOOGLE_PLAY_SERVICES
adalah konstanta bilangan bulat dengan nama dan nilai sembarang, yang bisa dirujuk dalamonActivityResult()
metode.Selain itu, menelepon
this.onActivityResult()
dengan kode di atas tidak apa-apa (Anda juga meneleponsuper.onActivityResult()
di tempat lain).sumber
GOOGLE_PLAY_SERVICES_PACKAGE
konstanta dari kelas GoogleApiAvailability adalah cara Google untuk memberi tahu Anda: jangan gunakanGooglePlayServicesUtil
kelas itu lagi.GoogleApiAvailability
kelasnya tidak ada? Jika kita mereferensikan kelas secara statis, bahkan di dalam ekspresi kondisional, bukankah itu akan membuat aplikasi crash?GoogleApiAvailability
adalah bagian dari perpustakaan klien. Jadi kodenya dikompilasi ke dalam app => Jangan khawatir tentang itu.Anda harus menggunakan GoogleApiAvailability sebagai gantinya:
this
mewakilicontext
.sumber
sumber
Saya telah menambahkan ini sebagai kesenangan di kelas BaseActivity untuk digunakan di semua tempat
gunakan seperti ini
Atau Anda dapat menyesuaikannya sesuai keinginan.
sumber