2017-01-18 5 views
0

Я хочу создать собственное уведомление с BigPictureStyle, не используя xml, я хочу полностью создать свой удаленный вид с помощью java-кода (непосредственно с использованием макетов (большинство LL или RL) и виджетов (imageview, textview)). Использование xml было легко, но когда я использую чистый Java-код для разработки моего удаленного представления, мое приложение падает.Платформа пользовательского оповещения Android

RemoteViews contentView = new RemoteViews(context.getPackageName(),R.id.custom_notification); 

В приведенном выше codeline вместо прохождения ресурса макета (R.id.custom_notification), я хочу передать относительный расположение кода Java идентификатор объекта (он имеет внутреннюю некоторые рассматривают ребенка).

RemoteViews contentView = new RemoteViews(context.getPackageName(),mainLayout.getId()); 

Данное заявление содержит следующую ошибку.

android - Bad notification posted - Couldn't expand RemoteViews for: StatusBarNotification 

, пожалуйста, помогите.

+0

Вы не можете сделать это. Макет, который вы передаете «RemoteViews», накачивается в удаленном процессе. То есть, эти 'View' создаются там, локально для этого процесса. Вы не можете создать 'View' в своем процессе и передать их другому. –

+0

Спасибо Mike M за ваш ответ. У нас есть обходные пути/альтернативные/любые исправления, связанные с этой проблемой. – Janardhan

+0

Ну, единственное, что приходит в голову с летучей мыши, - это идти вперед и раздувать ваш макет вне экрана (т. Е. Не добавлять его в «Активность»), настроить его по мере необходимости, заставлять его измерять а затем нарисуйте его на «Bitmap», который вы можете разместить на регулярном «RemoteViews», возможно, это просто большой «ImageView». –

ответ

-1

Plz проверить этот код. Я реализую эту функцию в своем приложении.

 Intent notificationIntent = null; 
     notificationIntent = new Intent(this, Screen_splash.class); 

     NotificationCompat.BigPictureStyle bigPictureStyle = new NotificationCompat.BigPictureStyle(); 
     bigPictureStyle.bigPicture(getBitmapFromURL(img_url)); 
     bigPictureStyle.setSummaryText(message); 

     mNotificationManager = (NotificationManager) this 
       .getSystemService(this.NOTIFICATION_SERVICE); 
     builder = new NotificationCompat.Builder(this); 
     builder.setContentTitle("ToothApp"); 
     builder.setContentText(message) 
       .setSmallIcon(R.drawable.logo_noti) 
       .setStyle(bigPictureStyle) 
       .setAutoCancel(true) 
       .setContentIntent(
         PendingIntent.getActivity(this, 10, 
           notificationIntent, 0)); 

     Uri alarmSound = RingtoneManager 
       .getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     builder.setSound(alarmSound); 

     mNotificationManager.notify(1, builder.build()); 

Благодаря

+0

Prosanto, Спасибо за повтор, но этот код является родным стилем, который уже работал для меня. Моим основным мотивом для этого пользовательского уведомления является показать растровое изображение, которое уже работает для меня, когда я его тестировал, и я хочу показать gif изображения, небольшие видеоклипы, виды карусельного типа в режиме просмотра уведомлений. – Janardhan

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