Android GCM PushNotification - Add add custom sound file in app

android, google-cloud-messaging, push-notification, uri

Solution

To add custom sound add this

notification.sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.pop);

i.e. In your code change

notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;

to

notification.sound = Uri.parse("android.resource://" + getPackageName() + "/" +R.raw.pop);
notification.defaults |= Notification.DEFAULT_VIBRATE;

Problem

I am getting GCM Push Notification successfully. Now i want to add custom sound file instead of default sound. I have tried with Uri from file:///res/raw/pop.mp3 in Notification.DEFAULT_SOUND; but not success. Please share if you have better solution. My GCMIntentService.java method code is below - ``` /** * Issues a notification to inform the user that server has sent a message. */ private static void generateNotification(Context context, String message) { System.out.println("Called generateNotification>>>>>>>>>>>>>"+message); NotificationManager notificationManager = (NotificationManager) context .getSystemService(Context.NOTIFICATION_SERVICE); // Notification notification = new Notification(icon, message, when); String title = context.getString(R.string.app_name); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder( context) .setSmallIcon(R.drawable.app_icon) .setContentTitle(title) .setStyle( new NotificationCompat.BigTextStyle().bigText(message)) .setContentText(message); Intent notificationIntent = new Intent(context, SplashActivity.class); PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT); mBuilder.setContentIntent(intent); Notification notification = mBuilder.build(); notification.flags |= Notification.FLAG_AUTO_CANCEL; notification.defaults |= Notification.DEFAULT_SOUND; notification.defaults |= Notification.DEFAULT_VIBRATE; notificationManager.notify(0, notification); } ```

Original source