2016-04-04 4 views
0

Я работаю над проектом Android, в котором я отправляю уведомления, когда происходит событие. К сожалению, когда я меняю значок уведомления на значок нашего проекта, который является 8,4-килобайтным изображением, я не получаю уведомления. Это особенно проблематично, так как нет ошибок, и никаких уведомлений не получено.Android: уведомление не отправлено и отображается при изменении значка

Когда я меняю изображение на простой красный квадрат, я вижу уведомление, но уведомление даже не красное. Как правильно настроить изображение уведомления на нужное изображение. Спасибо.

Как вы можете видеть первое уведомление, значок неправильный.

Скриншот:

enter image description here

Код:

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext()); 
mBuilder.setAutoCancel(true); 

mBuilder.setSmallIcon(R.drawable.defaultimage); 
mBuilder.setContentTitle(subject); 
mBuilder.setContentText(Html.fromHtml(text)); 

if (type.equals("note")) { 
        Log.d("type","note"); 
        Intent resultIntent = new Intent(getApplication(), EditNoteActivity.class); 
        resultIntent.putExtra("groupid", Long.valueOf(channelName)); 
        resultIntent.putExtra("canvasid", Integer.valueOf(canvasId)); 
        resultIntent.putExtra("sectionid", Integer.valueOf(sectionId)); 
        resultIntent.putExtra("noteid", Integer.valueOf(noteId)); 

        TaskStackBuilder stackBuilder = TaskStackBuilder.create(getApplicationContext()); 
        stackBuilder.addParentStack(EditNoteActivity.class); 

        stackBuilder.addNextIntent(resultIntent); 
        PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
        mBuilder.setContentIntent(resultPendingIntent); 

        NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

        mNotificationManager.notify(notificationCounter, mBuilder.build()); 
        notificationCounter++; 
} 

Изображение, которое я пытаюсь установить это PNG изображения, из 8KB, не помогает установка его каким-либо образом. Любая помощь будет приятной. Спасибо.

Update

Когда я выбираю изображение, Язь показывает изображение должным образом, как видно из скриншота: enter image description here

Даже если IDE показывает правильно, то изображение, полученное в уведомлении не верный.

Теперь, когда я пытаюсь добавить его в качестве актива, он показывает предварительный просмотр очень неправильно. И созданные изображения также ошибочны.

Скриншот:

enter image description here

Как вы можете видеть, это просто говорит, изображение какой-то серый цвет, но синий цвета изображения.

АЛОКС внушение

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext()); 
       mBuilder.setAutoCancel(true); 
       mBuilder.setSmallIcon(R.mipmap.twentynotelogo); 
       Bitmap icon = BitmapFactory.decodeResource(getResources(), 
         R.mipmap.twentynotelogo); 
       mBuilder.setLargeIcon(icon); 
       mBuilder.setContentTitle(subject); 
       mBuilder.setContentText(Html.fromHtml(text)); 
+0

Вы используете PNG изображений непосредственно из вашей вытяжки папки в Android App и в вызове метода создания уведомлений? –

+0

@ShadabK: Да. Я попробовал это, а также попытался получить его как Bitmap и использовать этот Bitmap, но не работал. Теперь он показывает окно, которое вы видите на скриншоте. –

ответ

0

Вы должны реализовать новую спецификацию для уведомления, нужно использовать setLargeIcon(), вместе с прозрачной маленькой иконкой.

в вашем случае вы используете setSmallIcon(), только вызывающий проблему. Просто установите большие и малые значок она будет работать (это обновление в леденце)

обновления:., Если вам нужно всего лишь установить небольшую иконку, чем вам нужно использовать растровое изображение и применить некоторый цвет фона

+0

Можете ли вы рассказать о том, как я могу сделать это с помощью маленькой иконки и изображения, которое я хочу? –

+0

В случае небольшого значка вам нужно сделать что-нибудь особенное, просто позаботьтесь, чтобы изображение было одного цвета и имело прозрачность, иначе полное изображение будет зависеть от цветовой фильтрации, применяемой автоматически системой при отображении маленькой иконки в уведомлении – Alok

+0

Хорошо, я попробую это сейчас. Момент –

0

Try чтобы получить изображение в виде рисунка из Android Studio в качестве значка уведомлений. Также используйте значок setLarge(). При выборе ресурса выберите ресурс изображения, как показано ниже. Notification icon generation Android Studio

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

Для вашего значка вам нужно использовать его как прозрачную иконку, а затем импортировать в этот метод самостоятельно. Удалите синий слой из значка, затем загрузите его в Android Studio. Вы получите это, как показано ниже. Transparent Icon in Android Studio

Затем, если вы все еще хотите, синего цвета на иконке вы должны добавить цвет фона программен ваше NotificationCompat.Builder в

int notificationcolor = getResources().getColor(R.color.my_notif_color); 

mBuilder.setColor(notificationcolor); 
+0

Предварительный просмотр показывает серое изображение, а не фактический просмотр. Это нормально? –

+0

Да, это то, как Android Studio генерирует значок, для которого вам нужно будет снабдить его подходящим изображением, чтобы он правильно инвертировался. –

+0

Хорошо, студия активов создала 4 изображения и разместила их в mimmap - **** ... Можете ли вы рассказать мне, как я могу получить доступ к изображениям? –

Смежные вопросы