Android推送通知如何播放默认声音

时间:2014-09-03 07:06:04

标签: android push-notification mixpanel

我使用MixPanel发送推送通知,并在自定义有效负载上添加以下代码: {"声音":"默认"}问题是我收到通知时没有播放声音。有人有解决方案吗?

7 个答案:

答案 0 :(得分:4)

也许这有助于找到here代码。

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

答案 1 :(得分:3)

要使用mixpanel发送通知+声音,您需要执行以下操作:

  • 将以下代码添加到onCreate:

    class CMySingleton
    {
    public:
      static CMySingleton& Instance()
      {
        static CMySingleton singleton;
        return singleton;
      }
    
    private:
      CMySingleton() {}                                  // Private constructor
      ~CMySingleton() {}
      CMySingleton(const CMySingleton&);                 // Prevent copy-construction
      CMySingleton& operator=(const CMySingleton&);      // Prevent assignment
    };
    
  • 从mixpanel发送通知并查看收到的通知。这将在创建时发送通知,并在用户设备上配置默认声音。

答案 2 :(得分:2)

  mBuilder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI);

答案 3 :(得分: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));

答案 4 :(得分:1)

尝试以下代码

Notification notification = new Notification(R.drawable.appicon,
                "Notification", System.currentTimeMillis()); 
notification.defaults = Notification.DEFAULT_SOUND;

答案 5 :(得分:1)

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

答案 6 :(得分:0)

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

您可以在以下位置查看Mixpanel的文档,了解如何使用低级API:https://mixpanel.com/help/reference/android-push-notifications#advanced - 然后您可以应用其他答案中的建议来做您喜欢的任何事情。自定义数据有效负载。