2014-09-03 135 views
5

我正在使用MixPanel发送推送通知,并在自定义有效载荷上添加了以下代码: {“sound”:“default”}问题当没有声音播放时我收到通知。有没有人有这个解决方案?Android推送通知如何播放默认声音

回答

4

也许这有助于发现here代码看起来像这样。

Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification); 
r.play(); 
+0

是否可以在清单中设置推送通知声音? – Pruthviraj 2016-04-29 11:03:51

1

假设你有一个声明......

NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this) 
        .setAutoCancel(true) 
        .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher)) 
        .setTicker(title) 
        .setWhen(ts) 
        .setContentTitle(title) 
        .setStyle(new NotificationCompat.BigTextStyle() 
          .bigText(message)) 
        .setContentText(message); 

...变量在你的代码的某个地方建造,试试这个:

final String ringTone = "default ringtone"; // or store in preferences, and fallback to this 
mBuilder.setSound(Uri.parse(ringTone)); 
+0

我得到一个错误,说“mBuilder未初始化”如果我点击修复按钮Eclipse自动初始化mBuilder为空,当我运行应用程序崩溃 – Signo 2014-09-03 07:31:55

+0

我提到“假设”你有它填充的地方。无论如何,它看起来像上面编辑的代码。请注意,您必须设置标题,ts和消息变量! – alpinescrambler 2014-09-03 07:34:11

+0

对我来说是正确的答案(使用改编的Xamarin代码)。完全忘了检查Builder是否有SetSound方法!谢谢。 – nrod 2015-05-22 15:37:16

1

试试下面的代码

Notification notification = new Notification(R.drawable.appicon, 
       "Notification", System.currentTimeMillis()); 
notification.defaults = Notification.DEFAULT_SOUND; 
1
final Notification notification = 
    new Notification(iconResId, tickerText, System.currentTimeMillis()); 
final String packageName = context.getPackageName(); 
notification.sound = 
    Uri.parse("android.resource://" + packageName + "/" + soundResId); 
0

处理来自Mixpanel的传入推送通知的Android的Mixpanel库中的默认GCMReceiver不包含声音。您需要编写自己的BroadcastReceiver来处理来自Mixpanel的传入消息。

您可以看看Mixpanel的文档,以了解如何使用低级API:https://mixpanel.com/help/reference/android-push-notifications#advanced - 然后您可以应用其他答案中的建议来根据您的自定义数据有效载荷执行任何操作。

1
mBuilder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI); 
2

为了使用mixpanel发送通知+音效,你需要做到以下几点:

  • 下面的代码添加到的onCreate:从

     NotificationCompat.Builder mBuilder = 
           new NotificationCompat.Builder(this); 
         mBuilder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI); 
         Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
         Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification); 
         r.play(); 
    
  • 发送通知并看到它收到。这将通过用户设备上配置的默认声音发送创建通​​知。