Androidアプリを作っていると、アプリからデバイスの「設定」に飛ばしたくなることがあります。例えば、アプリ内でカメラを使いたいときに、カメラへのアクセスが許可されていない場合は使えないので、「設定」で許可してもらいたいです。
そこで、アプリの「設定へ」のようなボタンを押すと設定画面を開くようにする方法を、忘れないように記しておきます。
以下の手順では、該当アプリの詳細設定画面に飛ぶようになっています。
手順
アプリの詳細設定画面を開くコードを以下に示します。
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)
これで、詳細設定画面を開けるようになりました。