X10中的自定义通知布局

时间:2011-04-16 14:47:09

标签: android notifications

我在我的应用中使用自定义通知布局。它适用于所有其他设备,但不适用于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>

2 个答案:

答案 0 :(得分:1)

嗯,这听起来像是一个Xperia错误。我的猜测是索尼制作了一些mods,假设通知抽屉内容具有某种结构,而且它失败了。可能存在LogCat消息。

如果您有权访问设备进行测试,您可以尝试将status_bar_latest_event_content.xml从SDK中的适当平台复制到项目中,并尝试使用它。这是Notification的标准RemoteViews布局,如果您不覆盖它。

如果成功,那么我上面的理论可能是正确的,你可以逐步调整该布局,直到它停止工作,在这种情况下,你知道索尼的依赖是什么,并可以试图弄清楚如何解决它。

如果您尝试布局并且失败并出现相同的症状,那么索尼可能会破坏自定义通知布局的整个概念。在这种情况下,如果不使用Build来识别失败的设备并解决它们,您可能需要坚持使用标准布局。

答案 1 :(得分:0)

这个错误似乎已经修复了索尼爱立信Xperia设备固件的最新版本。但是,为了确保我们看到同样的事情,如果您能为我们提供LogCat详细日志,那将会非常有帮助。