Android のインテントアクションと開く画面 - その 4

[Android のアプリ情報を開く](https://qiita.com/CYonezawa/items/75d37b9065b1e2a4ceb1) で ACTION_APPLICATION_DETAILS_SETTINGS インテントアクションを使って、アプリ情報の設定画面を開くコードを書きました
他にも Android のインテントアクションはありますので、開く画面のスクリーンショットと、Delphi のコードと合わせて紹介します

[Android のインテントアクションと開く画面 - その 1](https://qiita.com/CYonezawa/items/0a5bbdb2523e736bef3a)
[Android のインテントアクションと開く画面 - その 2](https://qiita.com/CYonezawa/items/2141c329dd1dacca1052)
[Android のインテントアクションと開く画面 - その 3](https://qiita.com/CYonezawa/items/d68a960d65080813693e)

# Android Developer のドキュメント

詳しい情報は
https://developer.android.com/reference/android/provider/Settings.html
にあります

# ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS

すべてのアプリ設定画面

```delphi
// 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);
```
![Screenshot_20180227-114725.png](https://qiita-image-store.s3.amazonaws.com/0/164551/0ba19a7f-ebc0-1121-c191-26b9fdd75fb5.png)

# ACTION_MANAGE_APPLICATIONS_SETTINGS

アプリ設定画面

```delphi
// 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);
```

![Screenshot_20180206-102646.png](https://qiita-image-store.s3.amazonaws.com/0/164551/b747c5ff-149e-3d90-2a14-ba8e8d2f823f.png)

# ACTION_MANAGE_OVERLAY_PERMISSION

他のアプリの上に重ねて描画できるアプリ設定画面

使用しているデバイスの OSバージョンに注意！ 6.0 以降ではないと使用できません。

```delphi
// 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);
```

![Screenshot_20180206-102653.png](https://qiita-image-store.s3.amazonaws.com/0/164551/84bedbf8-81ab-ee50-6cff-0a9bd278772e.png)

# ACTION_MANAGE_WRITE_SETTINGS

システム設定を変更できるアプリ設定画面

使用しているデバイスの OSバージョンに注意！ 6.0 以降ではないと使用できません。

```delphi
// 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);
```

![Screenshot_20180206-102659.png](https://qiita-image-store.s3.amazonaws.com/0/164551/8255ce9e-6b3f-97d3-2409-62293463a6ec.png)

# ACTION_MEMORY_CARD_SETTINGS

内部ストレージ設定画面

```delphi
// 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);
```

![Screenshot_20180206-102706.png](https://qiita-image-store.s3.amazonaws.com/0/164551/0db6d887-662c-80ff-f1a0-ec6c78b80549.png)

# ACTION_NETWORK_OPERATOR_SETTINGS

利用可能なネットワーク設定画面
（インテントアクションを行なうと、利用可能なネットワークを検索し始めます）

```delphi
// 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);
```

![Screenshot_20180227-125903.png](https://qiita-image-store.s3.amazonaws.com/0/164551/7c70e5ea-a04a-1c95-b793-c0e7bdd04701.png)


# ACTION_NFCSHARING_SETTINGS

Android ビーム設定画面

```delphi
// 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);
```

![Screenshot_20180206-102730.png](https://qiita-image-store.s3.amazonaws.com/0/164551/37af0de4-1f1f-a1b2-a7f9-a28e1fb53be4.png)


# ACTION_NFC_PAYMENT_SETTINGS

タップ＆ペイ設定画面

```delphi
// 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);
```

![Screenshot_20180206-102736.png](https://qiita-image-store.s3.amazonaws.com/0/164551/b556b449-ca6b-9a73-29b1-5ce88235f4c6.png)

# ACTION_NFC_SETTINGS

無線とネットワーク設定画面 ( NFC の箇所 )

```delphi
// 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);
```

![Screenshot_20180206-102743.png](https://qiita-image-store.s3.amazonaws.com/0/164551/3456509a-9763-0112-1fa9-09f64a37dfec.png)


# ACTION_NOTIFICATION_LISTENER_SETTINGS

通知へのアクセス設定画面

使用しているデバイスの OSバージョンに注意！ 5.1 以降ではないと使用できません。

```delphi
// 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);
```

![Screenshot_20180206-102749.png](https://qiita-image-store.s3.amazonaws.com/0/164551/333556dc-cccc-ad14-6041-ed051d09fb52.png)


# ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS

［通知を非表示］へのアクセス設定画面
使用しているデバイスの OSバージョンに注意！ 6.0 以降ではないと使用できません。

```delphi
// 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);
```

![Screenshot_20180206-102754.png](https://qiita-image-store.s3.amazonaws.com/0/164551/1ce4cddd-4b88-4cfc-18c4-4168a54ea09d.png)


その 5 に続く...