Notification custom sound and vibrate not working?

心不动则不痛 提交于 2021-02-11 17:01:52

问题


I have an app that receives notification, all is working. However, the custom sound and vibration is not working. I'm testing it on Android 9 pie.

Uri sound = Uri.parse("android.resource://" +getApplicationContext().getPackageName()+ "/" +R.raw.siren); //ContentResolver.SCHEME_ANDROID_RESOURCE +

    String NOTIFICATION_CHANNEL_ID = "com.example.bantay.bantay.test";
    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);

    notificationBuilder.setAutoCancel(true);
    notificationBuilder.setWhen(System.currentTimeMillis());
    notificationBuilder.setSmallIcon(R.drawable.marikinalogo);
    notificationBuilder.setContentTitle(title);
    notificationBuilder.setContentText(body);
    notificationBuilder.setSound(sound);
    notificationBuilder.setVibrate(new long[]{500, 1000, 500, 1000});
    if(title.toLowerCase().contains("1")){
        notificationBuilder.setContentIntent(pendingIntent);
    }
    else{
        notificationBuilder.setContentIntent(pendingIntent3);
    }

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "Notification", NotificationManager.IMPORTANCE_HIGH);

        AudioAttributes audioAttributes = new AudioAttributes.Builder()
                .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                .setUsage(AudioAttributes.USAGE_ALARM)
                .build();

        notificationChannel.enableLights(true);
        notificationChannel.setLightColor(Color.RED);
        notificationChannel.enableVibration(true);
        notificationChannel.setVibrationPattern(new long[]{500, 1000, 500, 1000});
        notificationChannel.setSound(sound, audioAttributes);
        notificationManager.createNotificationChannel(notificationChannel);
    }

    notificationManager.notify(0, notificationBuilder.build());

I don't know my errors. Does the NOTIFICATION_CHANNEL_ID affect the behavior of the notification?


回答1:


I am using MediaPlayer for custom sound. And This is Working fine for me. This is working for all devices.

private MediaPlayer player;

For play custom sound:

 try {
       Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.siren);

       player = MediaPlayer.create(this, uri);
       player.setLooping(true); // This will play sound in repeatable mode.
       player.start();

//     mBuilder.setSound(uri);
     } catch (Exception e) {
        e.printStackTrace();
    }

For stop sound:

  if (player != null)
      player.stop();

This is working for me. Hope this will also helps you.



来源:https://stackoverflow.com/questions/55891841/notification-custom-sound-and-vibrate-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!