当前位置:首页 > 今天的世界杯

Android Notification 没有声音 没有震动 的情况

admin 2025-09-21 01:47:26 2051

1.id和name记得改

channel的id和name,如果是之前的notification的没有加声音和震动的话,最好改掉id和name,并且重新卸载安装

2.加权限

在manifest中加上震动的权限

3.调整重要程度

NotificationChannel notificationChannel=new NotificationChannel(id,name,NotificationManager.IMPORTANCE_DEFAULT);

看自己写的是不是IMPORTANCE_DEFAULT,不是的话改一下,LOW是没声音的

4.channel允许震动的设置

notificationChannel.enableVibration(true);

5.Notification的代码

//1.获得一个通知管理器

NotificationManager notificationManager= (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

//2.建立一个通知 8.0后需要建立通知通道

Notification notification=null;

String id="carChannel2";

String name="carsignal";

if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){

NotificationChannel notificationChannel=new NotificationChannel(id,name,NotificationManager.IMPORTANCE_DEFAULT);

notificationChannel.enableVibration(true);

Log.i("Notification",notificationChannel.toString());

notificationManager.createNotificationChannel(notificationChannel);

notification=new Notification.Builder(getApplicationContext(),id)

.setLargeIcon(BitmapFactory.decodeResource(this.getResources(),R.drawable.ic_notif))

.setSmallIcon(R.drawable.ic_notif_small)

.setContentText(text)

.setContentTitle("信标编号:"+mIMEI)

.setDefaults(Notification.DEFAULT_ALL)

.setWhen(System.currentTimeMillis())

.setAutoCancel(true)

//3.绑定对应的activity

.setContentIntent(PendingIntent.getActivity(getApplication(),1,new Intent(getApplicationContext(),MainActivity.class),PendingIntent.FLAG_CANCEL_CURRENT))

.build();

}else if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.JELLY_BEAN){//安卓4.0以上 8.0以下

//主要区别就是没有绑定通道

notification=new Notification.Builder(getApplication())

.setContentTitle("信标编号:"+mIMEI)

.setContentText(text)

.setSmallIcon(R.drawable.ic_notif_small)

.setOngoing(true)

.setContentIntent(PendingIntent.getActivity(getApplication(),1,new Intent(getApplicationContext(),MainActivity.class),PendingIntent.FLAG_CANCEL_CURRENT))

.build();

}

//4.发出通知

notificationManager.notify(0,notification);