【Defold】Android端末のランタイム権限チェック「Defold Android Permissions」アセット
Android のアプリをリリースする際にはユーザーに配慮してできるだけ各種権限の確認をすることが望ましいです。「Defold Android Permissions」アセットはそんな権限のチェックするためのアセットです。
目次
アセットページ
https://defold.com/assets/defoldandroidpermissions/
ライブラリのURL
https://github.com/asfdfdfd/defold-android-permissions/archive/master.zip
依存するライブラリ
なし。
使い方
事前準備
権限をリクエストする前に、それらをAndroidManifest.xmlに追加する必要があります。これはDefold に限った話ではありませんね。
モジュールの有効確認
if android_permissions then
-- モジュールが有効なので、各種機能が利用できます。
end
権限が有効か確認する
android_permissions.is_permission_granted("android.permission.WRITE_EXTERNAL_STORAGE")
権限のリクエスト
例えばストレージのアクセスをリクエストしたい場合は以下の様になります。
local permissions = {"android.permission.WRITE_EXTERNAL_STORAGE"}
android_permissions.request_permissions(permissions, function (results)
for permission, grant_result in pairs(results) do
if grant_result == android_permissions.PERMISSION_GRANTED then
-- 許可する。
elseif grant_result == android_permissions.PERMISSION_DENIED then
-- しない。
end
end
end)
権限を許可しないまま「今後は確認しない」を選択して閉じた場合
“今後は確認しない" にチェックボックスを入れた状態で「許可しない」とすると次回から画像の様なポップアップが出て来なくなります。そんな時はゲーム内で独自のUIを表示して権限の必要性を説明した後、権限を有効にしてもらえる様にアプリの権限設定画面までジャンプさせます。その「許可しない」としたか否かはこちらで確認します。
android_permissions.should_show_request_permission_rationale("android.permission.WRITE_EXTERNAL_STORAGE")