Push-уведомление Android Mixpanel со звуком

Я разработал приложение, которое использует push-уведомления с Mixpanel. Они работают хорошо, включая глубокие ссылки.

Проблема в том, что мой клиент хочет, чтобы они звучали после получения, но они не воспроизводят никакого звука.

Прочитав документацию, я знаю, что для iOS это так же просто, как добавить поле в пользовательские данные, но в Android нет звукового поля для его настройки. Если я не ошибаюсь, единственным решением является расширение широковещательного приемника Mixpanel, поэтому я изменил свой AndroidManifest следующим образом:

<receiver android:name="com.mixpanel.android.mpmetrics.GCMReceiver"
          android:permission="com.google.android.c2dm.permission.SEND" >
    <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
        <category android:name="my.package.name" />
    </intent-filter>
</receiver>

к этому:

<receiver android:name=".auxiliary.LocalNotificationBroadcastReceiver"
          android:permission="com.google.android.c2dm.permission.SEND" >
    <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
        <category android:name="my.package.name" />
    </intent-filter>
</receiver>

И я добавил этот класс .auxiliary.LocalNotificationBroadcastReceiver:

import com.mixpanel.android.mpmetrics.GCMReceiver;

public class LocalNotificationBroadcastReceiver extends GCMReceiver {

    @Override
    public void onReceive(final Context context, Intent intent) {
        super.onReceive(context, intent);
    }
}

Таким образом, push-уведомления, отправленные из Mixpanel, по-прежнему приходят правильно, но я не знаю, как добавить звук к этому уведомлению.

Любая помощь будет очень признательна!


person Wonton    schedule 28.07.2017    source источник


Ответы (1)


Разветвите библиотеку MixPanel и настройте построитель уведомлений. Обратите внимание на следующее:

  • MixPanel использует MPConfig для получения уведомлений по умолчанию
  • MixPanel не использует NotificationCompat, поэтому существует несколько методов сборки (возможно, потому, что они не включают библиотеку поддержки).

Вот где они строят уведомление:

https://github.com/mixpanel/mixpanel-android/blob/master/src/main/java/com/mixpanel/android/mpmetrics/GCMReceiver.java#L376

person ViciDroid    schedule 25.09.2017