gpt4 book ai didi

java - Android Studio 如何让通知出现在手机上?

转载 作者:行者123 更新时间:2023-12-02 09:19:02 31 4
gpt4 key购买 nike

我想创建一个推送通知,管理员可以在其中向所有用户发送通知。我找到了一个教程并按照它进行操作,但它不起作用。我不确定我在哪里做错了,但我收到错误消息

程序包“...”的开发人员警告无法在 channel “null”上发布通知

 b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String tittle = ed1.getText().toString().trim();
String subject = ed2.getText().toString().trim();
String body = ed3.getText().toString().trim();

NotificationManager notif = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification notify = new Notification.Builder
(getApplicationContext()).setContentTitle(tittle).setContentText(body).
setContentTitle(subject).setSmallIcon(R.drawable.ps).build();

notify.flags |= Notification.FLAG_AUTO_CANCEL;
notif.notify(0, notify);
}
});

最佳答案

在 Oreo SDK 之后,您必须创建通知 channel 才能显示通知,请引用此方法:

/**
*
* @param context
* @param title --> title to show
* @param message --> details to show
* @param intent --> What should happen on clicking the notification
* @param reqCode --> unique code for the notification
*/

public void showNotification(Context context, String title, String message, Intent intent, int reqCode) {
SharedPreferenceManager sharedPreferenceManager = SharedPreferenceManager.getInstance(context);

PendingIntent pendingIntent = PendingIntent.getActivity(context, reqCode, intent, PendingIntent.FLAG_ONE_SHOT);
String CHANNEL_ID = "channel_name";// The id of the channel.
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, CHANNEL_ID)
.setSmallIcon(R.mipmap.notification_logo)
.setContentTitle(title)
.setContentText(message)
.setAutoCancel(true)
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
CharSequence name = "Channel Name";// The user-visible name of the channel.
int importance = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
notificationManager.createNotificationChannel(mChannel);
}
notificationManager.notify(reqCode, notificationBuilder.build()); // 0 is the request code, it should be unique id

Log.d("showNotification", "showNotification: " + reqCode);
}

如何使用此方法:

    int reqCode = 1;
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
showNotification(this, "Title", "This is the message to display", intent, reqCode);

关于java - Android Studio 如何让通知出现在手机上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58817214/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com