我在我的应用中使用自定义通知布局。它适用于所有其他设备,但不适用于Sony Xperia系列。通知没有显示。
示例:
使用setLatestEventInfo()
并制作标准Notification
时,它可以正常使用。但是当我使用自定义布局时,它无法在Sony Xperia系列手机上使用。
通知代码:
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.customlayout);
int icon = R.drawable.icon;
CharSequence tickerText = "testing";
Intent intent = new Intent();
PendingIntent contentIntent = PendingIntent.getActivity(NotificationTest.this, 0, intent, 0);
long when = System.currentTimeMillis();
Notification mNotification = new Notification(icon, tickerText, when);
mNotification.contentIntent = contentIntent;
mNotification.flags = Notification.FLAG_AUTO_CANCEL;
contentView.setTextViewText(R.id.title, tickerText);
mNotification.contentView = contentView;
mNotificationManager.notify(0, mNotification);
以上代码在其他设备上运行良好,但Xperia系列存在问题
有什么想法吗?
编辑:Android开发人员指南中的标准自定义布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="3dp"
>
<ImageView android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="10dp"
/>
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#000"
/>
</LinearLayout>
答案 0 :(得分:1)
嗯,这听起来像是一个Xperia错误。我的猜测是索尼制作了一些mods,假设通知抽屉内容具有某种结构,而且它失败了。可能存在LogCat消息。
如果您有权访问设备进行测试,您可以尝试将status_bar_latest_event_content.xml
从SDK中的适当平台复制到项目中,并尝试使用它。这是Notification
的标准RemoteViews
布局,如果您不覆盖它。
如果成功,那么我上面的理论可能是正确的,你可以逐步调整该布局,直到它停止工作,在这种情况下,你知道索尼的依赖是什么,并可以试图弄清楚如何解决它。
如果您尝试布局并且失败并出现相同的症状,那么索尼可能会破坏自定义通知布局的整个概念。在这种情况下,如果不使用Build
来识别失败的设备并解决它们,您可能需要坚持使用标准布局。
答案 1 :(得分:0)
这个错误似乎已经修复了索尼爱立信Xperia设备固件的最新版本。但是,为了确保我们看到同样的事情,如果您能为我们提供LogCat详细日志,那将会非常有帮助。