Java 通知管理器错误Android Studio
我已经写了一个代码,当在信标范围内时有弹出通知 我的通知代码如下:Java 通知管理器错误Android Studio,java,android,android-studio,ibeacon,estimote,Java,Android,Android Studio,Ibeacon,Estimote,我已经写了一个代码,当在信标范围内时有弹出通知 我的通知代码如下: private void showNotification(String message){ Log.d("Hay8","DCM8"); Intent intent = new Intent(context, MainActivity.class); Log.d("Hay9","DCM9"); PendingIntent pendingIntent = Pendin
private void showNotification(String message){
Log.d("Hay8","DCM8");
Intent intent = new Intent(context, MainActivity.class);
Log.d("Hay9","DCM9");
PendingIntent pendingIntent = PendingIntent.getActivity(context,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
Log.d("Hay10","DCM10");
NotificationCompat.Builder builder = new NotificationCompat.Builder(context,"default")
.setSmallIcon(android.R.drawable.ic_dialog_info)
.setContentTitle("Notification1")
.setContentText(message)
.setDefaults(NotificationCompat.DEFAULT_ALL)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setContentIntent(pendingIntent);
Log.d("Hay11","DCM11");
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Log.d("Hay12","DCM12");
notificationManager.notify(NotiID++,builder.build());
}
我尝试使用日志进行调试,我认为问题在于NotificationManager方法。以下是日志:
05-23 17:23:30.774 18668-18668/com.example.user.estimotebeacon D/Hay8: DCM8
05-23 17:23:30.774 18668-18668/com.example.user.estimotebeacon D/Hay9: DCM9
05-23 17:23:30.776 18668-18668/com.example.user.estimotebeacon D/Hay10: DCM10
05-23 17:23:30.780 18668-18668/com.example.user.estimotebeacon D/Hay11: DCM11
05-23 17:23:30.781 18668-18668/com.example.user.estimotebeacon D/Hay12: DCM12
05-23 17:23:30.788 18668-18668/com.example.user.estimotebeacon E/NotificationManager: notifyAsUser: tag=null, id=1, user=UserHandle{0}
05-23 17:23:30.798 18668-18668/com.example.user.estimotebeacon D/Hay20: DCM20
05-23 17:23:30.859 18668-19389/com.example.user.estimotebeacon D/NetworkSecurityConfig: No Network Security Config specified, using platform default
05-23 17:23:32.088 18668-18674/com.example.user.estimotebeacon I/zygote64: Do partial code cache collection, code=28KB, data=21KB
05-23 17:23:32.089 18668-18674/com.example.user.estimotebeacon I/zygote64: After code cache collection, code=28KB, data=21KB
Increasing code cache capacity to 128KB
所以我的应用程序正在运行,但没有任何通知 我认为您没有创建通知通道。这就是为什么它不显示通知。你必须先创建一个频道
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
builder.setChannelId("com.myApp");
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(
"com.myApp",
"My App",
NotificationManager.IMPORTANCE_DEFAULT
);
if (notificationManager != null) {
notificationManager.createNotificationChannel(channel);
}
}
完整的解决方案如下
private void showNotification(String message){
Log.d("Hay8","DCM8");
Intent intent = new Intent(context, MapsActivity.class);
Log.d("Hay9","DCM9");
PendingIntent pendingIntent = PendingIntent.getActivity(context,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
Log.d("Hay10","DCM10");
NotificationCompat.Builder builder = new NotificationCompat.Builder(context,"default")
.setSmallIcon(android.R.drawable.ic_dialog_info)
.setContentTitle("Notification1")
.setContentText(message)
.setDefaults(NotificationCompat.DEFAULT_ALL)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setContentIntent(pendingIntent);
Log.d("Hay11","DCM11");
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Log.d("Hay12","DCM12");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
builder.setChannelId("com.myApp");
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(
"com.myApp",
"My App",
NotificationManager.IMPORTANCE_DEFAULT
);
if (notificationManager != null) {
notificationManager.createNotificationChannel(channel);
}
}
notificationManager.notify(2,builder.build());
}
哪一个是您的设备华为Nova 2.0您可以在Oreo 8.1及以上版本上查看此答案以获得解决方案谢谢您的帮助。创建频道后,现在我可以得到notificationBest Response来解决所有类型android版本中的通知问题