我在我的应用中使用了FCM通知, 我接收了它们并且它完美地显示了标题和消息
但是,当我收到通知时我没有任何声音或振动或任何带灯指示
我的通知构建器代码
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(R.drawable.applogo);
builder.setContentTitle(Title);
builder.setContentText(Message);
builder.setAutoCancel(true);
builder.setSound(Uri.parse("file:///android_asset/notification.mp3"));
builder.setContentIntent(pendingIntent);
builder.setDefaults(Notification.DEFAULT_VIBRATE);
builder.setLights(Color.RED, 1000, 300);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, builder.build());
先谢谢。
答案 0 :(得分:5)
firebase
发送推送通知时,请确保已启用声音选项<uses-permission android:name="android.permission.VIBRATE" />
通知的通知有效负载有一个声音密钥。
从官方文档中可以看出:
表示设备收到通知时播放的声音。支持默认或应用程序中捆绑的声音资源的文件名。声音文件必须位于/ res / raw /.
中
{
"to" : ".......",
"notification" : {
"body" : "body",
"title" : "title",
"icon" : "myicon",
"sound" : "default"
}
}
答案 1 :(得分:0)
试试这个
Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
builder.setSound(alarmSound);
答案 2 :(得分:0)
IMO你必须在清单文件中添加权限,如下所示
<uses-permission android:name="android.permission.VIBRATE" />
答案 3 :(得分:0)
Android通知无法获得声音和振动
尝试使用默认RingtoneManager
删除 builder.setSound(Uri.parse("file:///android_asset/notification.mp3"));
Uri uri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
builder.setSound(uri);
在Android清单中为振动添加了权限。
<uses-permission android:name="android.permission.VIBRATE" />
重要提示: 确保云服务器端(GCM / Firebase)正确配置Android推送通知服务
确认您获得了正确的下游有效负载(JSON)
{
"to": "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification": {
"body": "great match!",
"title": "SamDev Test",
"icon": "myicon",
"sound": "default"
}
}