Androidアプリには、アプリ通知設定を開く機能を追加したいボタンがあります(Android設定内))。
これでAndroid設定を開くことができます
startActivityForResult(new Intent(Android.provider.Settings.ACTION_SETTINGS), 0);
アプリの通知設定で直接開きたい
代替
プログラムで「ブロック通知」をオンまたはオフにする方法があれば、それも問題ありません。
アプリケーションの通知設定に直接ディープリンクできるパブリックAPIはありません。
Settings.ACTION_APPLICATION_DETAILS_SETTINGS
アプリケーションの設定へのディープリンクを設定しますが、通知画面に直接移動しません。
Androidアプリの通知設定? にリンクする方法はありますが、機能する可能性のある解決策がありますが、公式APIの一部ではないため、すべてのデバイスまたはAndroidの将来のバージョンで動作することが保証されています。
「ブロック通知」をプログラムでオン/オフする方法がある場合も問題ありません
絶対違う。プログラムによる通知のオン/オフをアプリケーションに許可すると、通知のオン/オフをユーザーが制御できるようになります。
私はこれが古い質問であることを知っていますが、将来的にそれを見つける人のために:Oreo(APIレベル26)以降、特定のアプリの通知設定用の公式ディープリンクIntent
があります。
Intent settingsIntent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.putExtra(Settings.EXTRA_APP_PACKAGE, getPackageName())
.putExtra(Settings.EXTRA_CHANNEL_ID, MY_CHANNEL_ID);
startActivity(settingsIntent);
EXTRA_CHANNEL_ID
パラメータはオプションであり、 the docs に従って「そのチャネルを強調表示」します。 FWIW、Android 8.1以降、違いが見られません。このパラメーターを追加する場合は、Action
がACTION_CHANNEL_NOTIFICATION_SETTINGS
であることを確認してください。
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);