gpt4 book ai didi

android - 无法展开 : StatusBarNotification 的 RemoteViews

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:12:37 29 4
gpt4 key购买 nike

之前有人问过这个问题,但没有一个答案对我有帮助,因此发布了我的案例。

我正在尝试使用布局文件构建自定义通知。但是我收到以下错误:

android.app.RemoteServiceException: Bad notification posted from package com.eswaraj.app.eswaraj: Couldn't expand RemoteViews for: StatusBarNotification(pkg=com.eswaraj.app.eswaraj user=UserHandle{0} id=8888 tag=null score=0: Notification(pri=0 contentView=com.eswaraj.app.eswaraj/0x7f030052 vibrate=null sound=null defaults=0x0 flags=0x0 kind=[null]))

我的布局文件是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="left">

<com.makeramen.RoundedImageView
android:id="@+id/nImage"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/profile_image"
android:padding="15dp"
android:scaleType="fitCenter"
app:riv_corner_radius="30dip"
app:riv_border_width="2dip"
app:riv_border_color="#333333"
app:riv_mutate_background="true"
app:riv_oval="true"/>

<TextView
android:id="@+id/nTitle"
android:text="eSwaraj: Your voice is heard"
android:layout_toRightOf="@+id/nImage"
android:paddingTop="12dp"
android:textSize="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<TextView
android:id="@+id/nMessage"
android:layout_below="@+id/nTitle"
android:layout_toRightOf="@+id/nImage"
android:text="Your comaplaint viewed"
android:textSize="15dp"
android:paddingTop="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<TextView
android:id="@+id/nTime"
android:layout_toRightOf="@+id/nImage"
android:layout_below="@+id/nMessage"
android:textSize="13dp"
android:paddingTop="5dp"
android:text="12:23PM"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

</RelativeLayout>

我发送通知如下:

public void sendNotification(Context caller, Class<?> activityToLaunch, Bitmap icon,   GcmMessageDto gcmMessageDto, int id) {
Intent toLaunch;
RemoteViews remoteViews = new RemoteViews(caller.getPackageName(), R.layout.notification);
if(activityToLaunch != null) {
toLaunch = new Intent(caller, activityToLaunch);
}
else {
toLaunch = new Intent();
}
PendingIntent intentBack = PendingIntent.getActivity(caller, 0, toLaunch, 0);

NotificationManager notifier = (NotificationManager) caller.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(caller)
.setSmallIcon(android.R.drawable.ic_notification_overlay)
.setContentIntent(intentBack);

remoteViews.setTextViewText(R.id.nMessage, gcmMessageDto.getMessage());
remoteViews.setTextViewText(R.id.nTime, new Date().toString());
if(icon != null) {
remoteViews.setImageViewBitmap(R.id.nImage, icon);
}
mBuilder.setContent(remoteViews);

notifier.notify(id, mBuilder.build());
}

如有任何帮助,我们将不胜感激。

最佳答案

简而言之,

com.makeramen.RoundedImageView

打乱了你的工作。

并非所有 View 都可以在用于构建自定义通知的 RemoteView 中使用。根据this official page只有以下内容可用于创建 RemoteView:

  • 框架布局
  • 线性布局
  • 相对布局
  • 网格布局
  • 模拟时钟
  • 按钮
  • 计时器
  • 图片按钮
  • ImageView
  • 进度条
  • TextView
  • ViewFlipper
  • ListView
  • GridView
  • 堆栈 View
  • AdapterViewFlipper

因此,您必须为修改后的 ImageView 类找到解决方法,并改用普通 ImageView。

关于android - 无法展开 : StatusBarNotification 的 RemoteViews,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27890357/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com