Android のアプリ情報を開く で ACTION_APPLICATION_DETAILS_SETTINGS インテントアクションを使って、アプリ情報の設定画面を開くコードを書きました
他にも Android のインテントアクションはありますので、開く画面のスクリーンショットと、Delphi のコードと合わせて紹介します
Android のインテントアクションと開く画面 - その 1
Android のインテントアクションと開く画面 - その 2
Android のインテントアクションと開く画面 - その 3
Android Developer のドキュメント
詳しい情報は
https://developer.android.com/reference/android/provider/Settings.html
にあります
ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS
すべてのアプリ設定画面
// uses に Androidapi.Helpers, Androidapi.JNI.APP, Androidapi.JNI.Provider
// Androidapi.JNI.GrapicsContentViewText を追加します
// インテントは Intent: JIntent; で定義しています
// 目的のインテントアクションのインテントを作成します
Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS);
// startActivity を使ってインテントを飛ばします。
TAndroidHelper.Activity.startActivity(Intent);
ACTION_MANAGE_APPLICATIONS_SETTINGS
アプリ設定画面
// uses に Androidapi.Helpers, Androidapi.JNI.APP, Androidapi.JNI.Provider
// Androidapi.JNI.GrapicsContentViewText を追加します
// インテントは Intent: JIntent; で定義しています
// 目的のインテントアクションのインテントを作成します
Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_MANAGE_APPLICATIONS_SETTINGS);
// startActivity を使ってインテントを飛ばします。
TAndroidHelper.Activity.startActivity(Intent);
ACTION_MANAGE_OVERLAY_PERMISSION
他のアプリの上に重ねて描画できるアプリ設定画面
使用しているデバイスの OSバージョンに注意! 6.0 以降ではないと使用できません。
// uses に Androidapi.Helpers, Androidapi.JNI.APP, Androidapi.JNI.Provider
// Androidapi.JNI.GrapicsContentViewText
// Androidapi.JNI.Net, Androidapi.JNI.JavaTypes を追加します
// インテントは Intent: JIntent; で定義しています
// URIは uri: string; で定義しています
// uri にパッケージ名をセットします
// ここでは getPackageName を使って自分自身のパッケージ名を取得しています
uri := 'package:' + JStringToString(TAndroidHelper.Context.getPackageName);
// 目的のインテントアクションのインテントを作成します
Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_MANAGE_OVERLAY_PERMISSION, StrToJURI(uri));
// startActivity を使ってインテントを飛ばします。
TAndroidHelper.Activity.startActivity(Intent);
ACTION_MANAGE_WRITE_SETTINGS
システム設定を変更できるアプリ設定画面
使用しているデバイスの OSバージョンに注意! 6.0 以降ではないと使用できません。
// uses に Androidapi.Helpers, Androidapi.JNI.APP, Androidapi.JNI.Provider
// Androidapi.JNI.GrapicsContentViewText
// Androidapi.JNI.Net, Androidapi.JNI.JavaTypes を追加します
// インテントは Intent: JIntent; で定義しています
// URIは uri: string; で定義しています
// uri にパッケージ名をセットします
// ここでは getPackageName を使って自分自身のパッケージ名を取得しています
uri := 'package:' + JStringToString(TAndroidHelper.Context.getPackageName);
// 目的のインテントアクションのインテントを作成します
Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_MANAGE_WRITE_SETTINGS, StrToJURI(uri));
// startActivity を使ってインテントを飛ばします。
TAndroidHelper.Activity.startActivity(Intent);
ACTION_MEMORY_CARD_SETTINGS
内部ストレージ設定画面
// uses に Androidapi.Helpers, Androidapi.JNI.APP, Androidapi.JNI.Provider
// Androidapi.JNI.GrapicsContentViewText を追加します
// インテントは Intent: JIntent; で定義しています
// 目的のインテントアクションのインテントを作成します
Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_MEMORY_CARD_SETTINGS);
// startActivity を使ってインテントを飛ばします。
TAndroidHelper.Activity.startActivity(Intent);
ACTION_NETWORK_OPERATOR_SETTINGS
利用可能なネットワーク設定画面
(インテントアクションを行なうと、利用可能なネットワークを検索し始めます)
// uses に Androidapi.Helpers, Androidapi.JNI.APP, Androidapi.JNI.Provider
// Androidapi.JNI.GrapicsContentViewText を追加します
// インテントは Intent: JIntent; で定義しています
// 目的のインテントアクションのインテントを作成します
Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_NETWORK_OPERATOR_SETTINGS);
// startActivity を使ってインテントを飛ばします。
TAndroidHelper.Activity.startActivity(Intent);
ACTION_NFCSHARING_SETTINGS
Android ビーム設定画面
// uses に Androidapi.Helpers, Androidapi.JNI.APP, Androidapi.JNI.Provider
// Androidapi.JNI.GrapicsContentViewText を追加します
// インテントは Intent: JIntent; で定義しています
// 目的のインテントアクションのインテントを作成します
Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_NFCSHARING_SETTINGS);
// startActivity を使ってインテントを飛ばします。
TAndroidHelper.Activity.startActivity(Intent);
ACTION_NFC_PAYMENT_SETTINGS
タップ&ペイ設定画面
// uses に Androidapi.Helpers, Androidapi.JNI.APP, Androidapi.JNI.Provider
// Androidapi.JNI.GrapicsContentViewText を追加します
// インテントは Intent: JIntent; で定義しています
// 目的のインテントアクションのインテントを作成します
Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_NFC_PAYMENT_SETTINGS);
// startActivity を使ってインテントを飛ばします。
TAndroidHelper.Activity.startActivity(Intent);
ACTION_NFC_SETTINGS
無線とネットワーク設定画面 ( NFC の箇所 )
// uses に Androidapi.Helpers, Androidapi.JNI.APP, Androidapi.JNI.Provider
// Androidapi.JNI.GrapicsContentViewText を追加します
// インテントは Intent: JIntent; で定義しています
// 目的のインテントアクションのインテントを作成します
Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_NFC_SETTINGS);
// startActivity を使ってインテントを飛ばします。
TAndroidHelper.Activity.startActivity(Intent);
ACTION_NOTIFICATION_LISTENER_SETTINGS
通知へのアクセス設定画面
使用しているデバイスの OSバージョンに注意! 5.1 以降ではないと使用できません。
// uses に Androidapi.Helpers, Androidapi.JNI.APP, Androidapi.JNI.Provider
// Androidapi.JNI.GrapicsContentViewText を追加します
// インテントは Intent: JIntent; で定義しています
// 目的のインテントアクションのインテントを作成します
Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_NOTIFICATION_LISTENER_SETTINGS);
// startActivity を使ってインテントを飛ばします。
TAndroidHelper.Activity.startActivity(Intent);
ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS
[通知を非表示]へのアクセス設定画面
使用しているデバイスの OSバージョンに注意! 6.0 以降ではないと使用できません。
// uses に Androidapi.Helpers, Androidapi.JNI.APP, Androidapi.JNI.Provider
// Androidapi.JNI.GrapicsContentViewText を追加します
// インテントは Intent: JIntent; で定義しています
// 目的のインテントアクションのインテントを作成します
Intent := TJIntent.JavaClass.init(TJSettings.JavaClass.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
// startActivity を使ってインテントを飛ばします。
TAndroidHelper.Activity.startActivity(Intent);
その 5 に続く...