Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What is going on with this article?
@mmmmk

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

More than 1 year has passed since last update.

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)

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

2
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
mmmmk
フロントエンドエンジニア見習い
5thfloor
Webシステムやモバイルアプリ開発、インフラ構築から運用監視までを幅広く。受託開発のほか、自社プロダクトとして創作・同人活動をサポートする「drill」「hondel」「ぷちのこ」などのサービスを開発・運営しています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
2
Help us understand the problem. What is going on with this article?