Я пытаюсь установить пользовательские цвета Sound, Vibration и LED для Notificaitons в моем приложении, но это не сработает. Все остальное, как настройка названия, значка, цвета и т.д., Отлично работает. Я пробовал много решений, предлагаемых в Stackoverflow, но они тоже не работали, поэтому я задаю вопрос.
Вот мой код уведомления -
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());
Я также добавил разрешение на вибрацию. Протестировано это на двух телефонах, работающих на Lollipop и Marshmallow.
Изменить 1:
Совместное использование всех разрешений, используемых моим приложением -
<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"/>
Изменить 2: Работает на телефоне версии Marshmallow. Не работает на телефонах с Lollipop.
Изменить 3: Работает также с Нугой (One plus 3T Phone).