1. ホーム
  2. android

[解決済み] Oreoで通知が表示されない

2022-03-12 09:31:52

質問

Android Oで通常の通知ビルダーが通知を表示しない。

Android 8 Oreoで通知を表示するにはどうすればよいですか?

Android Oで通知を表示するために追加すべき新しいコードはありますか?

解決方法を教えてください。

Android Oでは チャンネルを使用する必要があります。 通知ビルダーで

以下はサンプルコードです。

// Sets an ID for the notification, so it can be updated.
int notifyID = 1; 
String CHANNEL_ID = "my_channel_01";// The id of the channel. 
CharSequence name = getString(R.string.channel_name);// The user-visible name of the channel.
int importance = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
// Create a notification and set the notification channel.
Notification notification = new Notification.Builder(MainActivity.this)
            .setContentTitle("New Message")
            .setContentText("You've received new messages.")
            .setSmallIcon(R.drawable.ic_notify_status)
            .setChannelId(CHANNEL_ID)
            .build();

またはHandling compatibility byで。

NotificationCompat notification =
        new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.notification_icon)
        .setContentTitle("My notification")
        .setContentText("Hello World!")
        .setChannelId(CHANNEL_ID).build();

次に、それを通知するようにします。

NotificationManager mNotificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
 mNotificationManager.createNotificationChannel(mChannel);

// Issue the notification.
mNotificationManager.notify(notifyID , notification);

または、単純に修正したい場合は、以下のコードを使用してください。

NotificationManager mNotificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
       mNotificationManager.createNotificationChannel(mChannel);
    }

更新情報です。 NotificationCompat.Builderのリファレンス

NotificationCompat.Builder(Context context)

このコンストラクタは、API レベル 26.0.0 で非推奨となりました。 を使用する必要があります。

Builder(Context context, String channelId)

ということで setChannelId を新しいコンストラクタで使用します。

また、AppCompatライブラリの最新版(現在26.0.2)を使用する必要があります。

compile "com.android.support:appcompat-v7:26.0.+"

出典 YoutubeのAndroid Developers Channel

また、あなたは Android公式ドキュメント