本文介绍了android.app.RemoteServiceException:在华为Y6上发布了错误的通知的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在运行Android 5.1的特定华为设备(HUAWEI TIT-L01)上崩溃了
I'm having crashes on a specific huawei device (HUAWEI TIT-L01) running Android 5.1
我找不到使用Google的大量信息
I'm not finding alot of information by using Google
stacktrace:
stacktrace:
android.app.RemoteServiceException: Bad notification posted from package
com.myapp.test: Couldn't expand RemoteViews for:
StatusBarNotification(pkg=com.myapp.test user=UserHandle{0}
id=1 tag=null score=0 key=0|com.myapp.test|1|null|10693:
Notification(pri=0 contentView=com.myapp.test/0x109007e
vibrate=null sound=null defaults=0x0 flags=0x0 color=0x00000000
category=transport actions=3 vis=PRIVATE))
代码(我没有写这个,所以不要判断我):
code (I didn't wrote this so don't judge me) :
private static void buildNotification(Notification.Action action)
{
final Notification.MediaStyle style = new Notification.MediaStyle();
final Intent intent = new Intent(MyApplication.getAppContext(), MediaPlayerService.class);
intent.setAction(ACTION_STOP);
final PendingIntent pendingIntent = PendingIntent.getService(MyApplication.getAppContext(), 1, intent, 0);
Bitmap coverImage = null;
String bookTitle = "";
String author = "";
if (PlaybackUtils.INSTANCE.getCurrentBookPerformant() != null) {
coverImage = CoverUtils.INSTANCE.getOnlineImage(PlaybackUtils.INSTANCE.getCurrentBookPerformant());
bookTitle = PlaybackUtils.INSTANCE.getCurrentBookPerformant().getTitle();
author = PlaybackUtils.INSTANCE.getCurrentBookPerformant().getCreator();
} else if (PlaybackUtils.INSTANCE.getCurrentContentImpl() != null) {
coverImage = CoverUtils.INSTANCE.loadDeviceCover(PlaybackUtils.INSTANCE.getCurrentContentImpl());
bookTitle = PlaybackUtils.INSTANCE.getCurrentContentImpl().getTitle();
author = PlaybackUtils.INSTANCE.getCurrentContentImpl().getAuthor();
}
final Notification.Builder builder = new Notification.Builder(MyApplication.getAppContext()).
setSmallIcon(R.drawable.logo_statusbar)
.setLargeIcon(coverImage)
.setContentTitle(bookTitle)
.setContentText(author)
.setDeleteIntent(pendingIntent)
.setStyle(style);
builder.addAction(generateAction(android.R.drawable.ic_media_previous, "Previous", ACTION_PREVIOUS));
builder.addAction(action);
builder.addAction(generateAction(android.R.drawable.ic_media_next, "Next", ACTION_NEXT));
style.setShowActionsInCompactView(0, 1, 2);
final NotificationManager notificationManager = (NotificationManager) MyApplication.getAppContext().getSystemService(Context.NOTIFICATION_SERVICE);
final Notification build = builder.build();
notificationManager.notify(1, build);
}
推荐答案
遇到同样的问题.似乎华为的某些设备在通知中不支持标准MediaStyle.如果您在华为中运行,请不要添加MediaStyle
.
Faced with same issue. It seems like some devices from Huawei doesn't support standard MediaStyle in notification. Just don't add MediaStyle
if you run in Huawei.
final Notification.Builder builder = new Notification.Builder(MyApplication.getAppContext())
.setSmallIcon(R.drawable.logo_statusbar)
.setLargeIcon(coverImage)
.setContentTitle(bookTitle)
.setContentText(author)
.setDeleteIntent(pendingIntent);
if (!Build.MANUFACTURER.toLowerCase(Locale.getDefault()).contains("huawei")) {
builder.setStyle(style);
}
final Notification build = builder.build();
notificationManager.notify(1, build);
这篇关于android.app.RemoteServiceException:在华为Y6上发布了错误的通知的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!