Android通知无法获得声音和振动

时间:2017-10-05 12:58:07

标签: android firebase push-notification notifications

我在我的应用中使用了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());

先谢谢。

4 个答案:

答案 0 :(得分:5)

1。当您从firebase发送推送通知时,请确保已启用声音选项

像这样 enter image description here

2。还要确保您已在Android清单中添加了振动权限。

<uses-permission android:name="android.permission.VIBRATE" />

3. 如果您从服务器发送而不是使用有效负载

通知的通知有效负载有一个声音密钥。

从官方文档中可以看出:

  

表示设备收到通知时播放的声音。支持默认或应用程序中捆绑的声音资源的文件名。声音文件必须位于/ 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"
      }
    }