フォアグラウンドサービスを開始しようとしています。私はサービスが始まるが通知は常に抑制されることを通知されます。私は、アプリが自分のデバイスのアプリ情報に通知を表示することが許可されていることを再度確認しました。ここに私のコードは次のとおりです。Androidフォアグラウンドサービス通知が表示されない
private void showNotification() {
Intent notificationIntent = new Intent(this, MainActivity.class);
notificationIntent.setAction(Constants.ACTION.MAIN_ACTION);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
notificationIntent, 0);
Bitmap icon = BitmapFactory.decodeResource(getResources(),
R.mipmap.ic_launcher);
Notification notification = new NotificationCompat.Builder(getApplicationContext())
.setContentTitle("Revel Is Running")
.setTicker("Revel Is Running")
.setContentText("Click to stop")
.setSmallIcon(R.mipmap.ic_launcher)
//.setLargeIcon(Bitmap.createScaledBitmap(icon, 128, 128, false))
.setContentIntent(pendingIntent)
.setOngoing(true).build();
startForeground(Constants.FOREGROUND_SERVICE,
notification);
Log.e(TAG,"notification shown");
}
ここで私は関係で見るだけのエラーです: 06-20 12:26:43.635 895-930/? E/NotificationService: Suppressing notification from the package by user request.
これを処理するより便利な方法はありますか?サポート/ compat-style? 26より前のプラットフォームと26+のプラットフォームの両方で動作する同じコード。「if」を使用せずにコードを複製する。 –
if(Build.VERSION.SDK_INT> = Build.VERSION_CODES.O){createNotificationChannel(context);} //ここでコードを残してください –
この新しいコードスニペットでは、 'mNotifyManager.notify( ) 'の代わりに' startForeground() 'の代わりに使用します。この場合、実際にサービスをフォアグラウンドにしていますか? –