我花了最近2个小时试图弄清楚为什么我从FireBase发出的通知没有任何声音或振动。
我查看过有关此问题的许多主题,并尝试使用var user = "Alan";
var ref = firebase.database().ref(user + "/data/order_name");
ref.on("value", function(snapshot) {
console.log(snapshot.val());
});
.setDefaults
.setVibrate(new long[] { 1000, 1000, 1000, 1000, 1000 })
我现在拥有的是:
.setSound(defaultSoundUri)
我没有任何错误并且通知显示但我重复,没有声音,没有振动,没有LED灯,没有抬头。
要发送通知,我在服务器上使用python库:
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 notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle("Firebase Push Notification")
.setContentText(messageBody)
.setAutoCancel(true)
.setPriority(Notification.PRIORITY_MAX)
.setDefaults(-1)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
注意:我已经拥有明确定义的权限:# Send to single device.
from pyfcm import FCMNotification
push_service = FCMNotification(api_key="xxxxxxxxxxxxxxxx")
registration_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
message_title = "Test"
message_body = "Test notification"
result = push_service.notify_single_device(registration_id=registration_id, message_title=message_title, message_body=message_body)
print result
有什么想法吗?
答案 0 :(得分:2)
您没有从服务器发送声音标记可能是因为您没有收到通知声音的原因。请尝试添加:
sound = "default"
这可能会让你听到通知的声音。
看看这个:
https://firebase.google.com/docs/cloud-messaging/http-server-ref
为了更好地理解fcm下游android通知标志。
如果它改变了你的任何内容,请告诉我。
答案 1 :(得分:1)
如果你有正确的预先录取,有能力使用声音和振动检查:
<uses-permission android:name="android.permission.VIBRATE" />