我有一个在api级别22中构建的应用程序,现在我不得不将其更新为api级别26,并且最初构建的持久性通知不再起作用。我已经尝试了来自stackoverflow的多个代码,但对我来说没有成功。
我的代码:
void setUpAsForeground(String text) {
Intent mainActivity = new Intent(getApplicationContext(), MainActivity.class);
PendingIntent openMainActivity = PendingIntent.getActivity(getApplicationContext(), 0,
mainActivity, 0);
// Build the notification object.
mNotificationBuilder = new Notification.Builder(getApplicationContext())
.setSmallIcon(R.drawable.radio_icon_128px)
.setTicker(text)
.setWhen(0)
// .setWhen(System.currentTimeMillis())
.setContentTitle(getResources().getString(R.string.app_name) + text)
.setContentText(mMusicProvider.getCurrentSongTitle())
.setContentIntent(openMainActivity)
.setOngoing(true);
startForeground(NOTIFICATION_ID, mNotificationBuilder.build());
// broadcastAction(MainActivity.ACTION_UPDATE_TITLE);
}
任何建议将不胜感激。
最佳答案
从API 26开始,您必须为您的应用提供一个通知通道,然后才能显示任何通知。对于Android 7及更低版本,需要设置优先级。有关更多信息和示例,请参见此文档:https://developer.android.com/training/notify-user/build-notification