0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Android で通知許可ダイアログを表示する

0
Posted at

Android 13以降のOSには通知の表示に許可が必要になったので実装方法をメモします。

Manifest.xmlに以下を追加します。

<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

ActivityResultLauncher を準備する

通知許可は、ActivityResultContracts.RequestPermission() を使います。

private val requestPermissionLauncher = registerForActivityResult(
  ActivityResultContracts.RequestPermission()
    ) { isGranted ->

        if (isGranted) {
            // 通知が許可された場合の処理
        } else {
            // 拒否された場合処理
        }
    }

推奨:事前に許可状態をチェックする

Android 13以上の場合かつまだ許可が出ていない場合にダイアログを表示させます。

  // Android 12以下では通知許可は自動的に許可扱いになる
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {

    if (ContextCompat.checkSelfPermission(
            this,
            Manifest.permission.POST_NOTIFICATIONS
        ) != PackageManager.PERMISSION_GRANTED
    ) {
        requestPermissionLauncher.launch(
            Manifest.permission.POST_NOTIFICATIONS
        )
    }
}

これで、システム標準の通知許可ダイアログが表示されます。

実務ではいきなり許可ダイアログを表示するのではなく、まず通知の用途を説明するためのポップアップ画面を表示します。その次に許可ダイアログを表示し、もし拒否された場合は設定画面へ誘導します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?