I'm trying to set custom Sound, Vibration and LED colors for the Notificaitons in my app - but it doesn't work. Everything else like setting the title, icon, color etc work fine. I've tried many solutions suggested in Stackoverflow but they didn't work either, so I'm asking a question.
Here is my notification code -
Intent resultIntent = new Intent(this, ActivityB.class);
Bundle b = new Bundle();
//Some bundle related Code
resultIntent.putExtra("bundle",b);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addNextIntent(new Intent(this, ActivityA.class));
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
android.support.v7.app.NotificationCompat.Builder builder = new android.support.v7.app.NotificationCompat.Builder(this);
builder.setSmallIcon(R.drawable.ic_small_logo);
builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_logo_large));
builder.setContentTitle(notification.getTitle());
builder.setContentText(notification.getBody());
builder.setColor(Color.parseColor("#FFFFFF"));
builder.setStyle(new NotificationCompat.BigTextStyle());
builder.setVibrate(new long[] { 1000, 100, 1000, 100, 1000 });
builder.setLights(Color.YELLOW, 3000, 3000);
builder.setSound(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.notif1));
builder.setAutoCancel(true);
builder.setContentIntent(resultPendingIntent);
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(1, builder.build());
I have added permission for Vibration too. Tested this on 2 phones running Lollipop and Marshmallow.
Edit 1:
Sharing all the permissions that my application uses -
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.VIBRATE"/>
Edit 2: Works on Marshmallow version phone. Does not work on Phones with Lollipop.
Edit 3: Works on Nougat too (One plus 3T Phone).