AndroidのrequestPermissionsについて

android

カメラや位置情報のパーミッション(権限)をユーザーに要求するrequestPermissionsについて
ActivityとFragmentで使う場合に気をつけないと「許可する」、「許可しない」を選択時のコールバックが返ってこなかったので気をつける

Fragmentから使う場合はActivityCompatの方を使っているとパーミッションの許可を選択するダイアログは出るんだけど、その選択した後のコールバック(onRequestPermissionsResult)が返ってこないことがわかった。
Fragmentからは直接呼び出し可能なrequestPermissionsを使う。そうするとコールバックもちゃんとonRequestPermissionsResultに返ってきた。Activityしかほとんど使っていないとActivityCompatの方を使いがちだ。

Fragment#requestPersmissionはdeprecatedになっていた。今後はregisterForActivityResultなるものを使うらしい。。

This method is deprecated.
use registerForActivityResult(ActivityResultContract, ActivityResultCallback) passing in a ActivityResultContracts.RequestMultiplePermissions object for the ActivityResultContract and handling the result in the callback.use registerForActivityResult(ActivityResultContract, ActivityResultCallback) passing in a ActivityResultContracts.RequestMultiplePermissions object for the ActivityResultContract and handling the result in the callback.

Comments

タイトルとURLをコピーしました