Ek Kapsamlar İsteme

ziyaret edin.

En iyi kullanıcı deneyimi için, mümkün olduğunca az kapsam talep etmelisiniz. ilk kez oturum açıyor. Uygulamanızın temel işlevi Google hizmeti, GoogleSignInOptions.DEFAULT_SIGN_IN yapılandırması genellikle ihtiyacınız olan tek şey bu.

Uygulamanızda Google API verilerini kullanabilen ancak kullanılamayan özellikler varsa bir gerekliliklerden biri olması durumunda, uygulamanızı en iyi Böylece, API verilerine erişilemediği durumlarda bu sorunlarla kolayca başa çıkabileceksiniz. Örneğin, kullanıcı Drive'a izin vermediğinde yakın zamanda kaydedilen dosyaların listesini gizleyebilirsiniz erişim.

Yalnızca Google API'lerine erişmeniz için gereken ek kapsamları istemelisiniz. Kullanıcı, belirli bir API'ye erişim gerektiren bir işlem gerçekleştirdiğinde Örneğin, Örneğin, kullanıcının Drive'ına yalnızca kullanıcı "Drive'a Kaydet"e dokunduğunda ilk kez kullanılıyor.

Bu tekniği kullanarak yeni kullanıcıları bunaltmaktan veya kafa karışıklığı yaşamaktan ve kullanıcılara bazı izinler verilmesine yardımcı olabilir.

Kullanıcı işlemlerinin gerektirdiği izinler isteme

Bir kullanıcı, aynı zamanda istenmeyen bir kapsam gerektiren bir işlem gerçekleştirdiğinde oturum açın, kullanıcının daha önce oturum açmış olup olmadığını kontrol etmek için GoogleSignIn.hasPermissions numaralı telefonu arayın gerekli izinleri verdi. Doğru değilse GoogleSignIn.requestPermissions numaralı telefonu arayın belirtir.

Örneğin, bir kullanıcı Drive'ına erişmeyi gerektiren bir işlem gerçekleştirirse aşağıdaki adımları izleyin:

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();
}

Etkinliğinizin onActivityResult geri aramasında, ve izin başarılı bir şekilde alındıysa kullanıcı işlemini gerçekleştirin.

@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();
        }
    }
}

Ayrıca hasPermissions adlı kullanıcıya GoogleSignInOptionsExtension iletebilir ve Daha fazla izin grubunu kontrol etmek ve almak için requestPermissions kolaylaştırdık.