5
3

More than 3 years have passed since last update.

【Android】アプリの権限を許可してもらうために「設定」を開きたい

Posted at

Androidアプリを作っていると、アプリからデバイスの「設定」に飛ばしたくなることがあります。例えば、アプリ内でカメラを使いたいときに、カメラへのアクセスが許可されていない場合は使えないので、「設定」で許可してもらいたいです。
そこで、アプリの「設定へ」のようなボタンを押すと設定画面を開くようにする方法を、忘れないように記しておきます。

以下の手順では、該当アプリの詳細設定画面に飛ぶようになっています。

アプリの詳細設定画面
application_details_settings.png

手順

アプリの詳細設定画面を開くコードを以下に示します。

val settingsIntent = Intent(
    android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS, 
    Uri.parse("package:<アプリのパッケージ名>")
)
settingsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(settingsIntent)

まず、Intentを生成します。
action(第一引数)にSettings.ACTION_APPLICATION_DETAILS_SETTINGSを渡すことで、特定のアプリの詳細設定画面を表示できます。
data(第二引数)に詳細設定画面を表示したいアプリのURIを渡します。

val settingsIntent = Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:<アプリのパッケージ名>"))

次に、Intentにフラグを追加します。
FLAG_ACTIVITY_NEW_TASKをセットすると、新しいタスクでActivityが開始されるようになります。例えば、設定画面に移動した後、設定が終わって戻るボタンを押したときに、元のアプリに戻ることができます。

settingsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

最後に、Activityを開始します。

startActivity(settingsIntent)

これで、詳細設定画面を開けるようになりました。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3