requestPermissions
でユーザーに1つ1つ質問してください。
最初にrequestPermissionを使用するタイミングは?
requestPermissionは、このメソッドがPERMISSION_GRANTED
を返さない場合、checkSelfPermissionの後にのみ呼び出します。
アンドロイドMが実行時に必要とするlist of permissionが見つかります。これらの各アクセス許可は、アクセス許可グループの一部です。 WRITE_EXTERNAL_PERMISSION
は、android.permission-group.STORAGE
およびACCESS_COARSE_LOCATION
/ACCESS_FINE_LOCATION
は、android.permission-group.LOCATION
である。
ユーザーがアクセス許可(例:ACCESS_COARSE_LOCATION
)にアクセスできる場合、アンドロイドは自動的にこのアクセス許可グループ-i.eのアクセスを許可します。 permission-group.LOCATION
- 。したがって、後でcheckSelfPermission
をACCESS_FINE_LOCATION
にすると、PackageManager.PERMISSION_GRANTED
を受け取るはずです。
アプリがクラッシュした場合は、ユーザから許可グループの場所をリクエストする前に、電話をかけようとしたことを示します(例:LocationServices.FusedLocationApi.requestLocationUpdates
)。
編集:
がrequestPermission
が非同期であることを忘れないでください。したがって、は、requestPermissionの直後にアクセス権が必要なメソッドを呼び出さないでください。権限が必要なメソッドを呼び出すには、許可のリストとその状態が与えられた/拒否されたonRequestPermissionsResultを上書きする必要があります。
クールな回答ありがとう! – Caipivara
プロセスを説明したアンドロイドパターンの動画も確認できます。https://www.youtube.com/watch?list=PLWz5rJ2EKKc-lJo_RGGXL2Psr8vVCTWjM&v=C8lUdPVSzDk – xiaomi