Untuk pengalaman pengguna terbaik, Anda harus meminta sesedikit mungkin cakupan saat
pertama kali membuat pengguna login. Jika fungsi inti aplikasi Anda tidak terikat dengan
oleh layanan Google, konfigurasi GoogleSignInOptions.DEFAULT_SIGN_IN
sering kali
yang Anda perlukan saat login.
Jika aplikasi Anda memiliki fitur yang dapat menggunakan data Google API, tetapi tidak diperlukan sebagai bagian dari fungsi inti aplikasi, Anda harus mendesain aplikasi tersebut dapat menangani kasus dengan lancar ketika data API tidak dapat diakses. Misalnya, Anda mungkin menyembunyikan daftar file yang baru-baru ini disimpan saat pengguna belum memberikan Drive akses.
Anda harus meminta cakupan tambahan yang hanya diperlukan untuk mengakses Google API saat pengguna melakukan tindakan yang memerlukan akses ke API tertentu. Sebagai Misalnya, Anda dapat meminta izin untuk mengakses Drive pengguna hanya ketika pengguna mengetuk “Simpan ke Drive” untuk pertama kalinya.
Dengan menggunakan teknik ini, Anda dapat menghindari kebingungan pengguna baru, atau membingungkan pengguna tentang mengapa mereka dimintai izin tertentu.
Meminta izin yang diperlukan oleh tindakan pengguna
Setiap kali pengguna melakukan tindakan yang memerlukan cakupan yang tidak diminta
login, panggil GoogleSignIn.hasPermissions
untuk memeriksa apakah pengguna sudah
telah diberi izin yang diperlukan. Jika tidak, panggil GoogleSignIn.requestPermissions
untuk meluncurkan aktivitas yang meminta cakupan tambahan yang diperlukan dari
.
Misalnya, jika pengguna melakukan tindakan yang memerlukan akses ke Drive miliknya penyimpanan aplikasi, lakukan tindakan berikut:
if (!GoogleSignIn.hasPermissions(
GoogleSignIn.getLastSignedInAccount(getActivity()),
Drive.SCOPE_APPFOLDER)) {
GoogleSignIn.requestPermissions(
MyExampleActivity.this,
RC_REQUEST_PERMISSION_SUCCESS_CONTINUE_FILE_CREATION,
GoogleSignIn.getLastSignedInAccount(getActivity()),
Drive.SCOPE_APPFOLDER);
} else {
saveToDriveAppFolder();
}
Dalam callback onActivityResult
aktivitas, Anda dapat memeriksa apakah metode yang diperlukan
izin akses berhasil diperoleh, dan jika demikian, lakukan tindakan pengguna.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
if (RC_REQUEST_PERMISSION_SUCCESS_CONTINUE_FILE_CREATION == requestCode) {
saveToDriveAppFolder();
}
}
}
Anda juga dapat meneruskan GoogleSignInOptionsExtension
ke hasPermissions
dan
requestPermissions
untuk memeriksa dan mendapatkan serangkaian izin
dengan mudah.