2

我正在使用通知,但我无法使用适用于 Froyo(或低于 3.0 的其他 android 版本)的自定义布局创建通知,就像它适用于 ICS 一样。

问题是我想将待处理的意图与任何单个视图相关联。

在我看来,有一个解决方法,因为应用程序通知切换可以做到这一点,但我不知道怎么做。

请帮我。

问候

4

3 回答 3

1

我正在使用通知,但我无法使用适用于 Froyo(或低于 3.0 的其他 android 版本)的自定义布局创建通知,就像它适用于 ICS 一样。

您可以在以前的版本上创建自定义布局,但您无法可靠地响应它们的点击事件。

问题是我想将待处理的意图与任何单个视图相关联。

在 Android 4.1 中添加丰富的通知之前,不支持此功能。由于制造商的修改,它可能适用于某些设备,但不适用于所有设备。

在我看来,有一个解决方法,因为应用程序通知切换可以做到这一点,但我不知道如何

“通知切换”是设备固件(操作系统或制造商修改)的一部分,而不是 SDK 应用程序的一部分。

于 2013-02-19T18:38:53.667 回答
1

对于 3.0 以下的 Android,Notification Toggles 使用了一种完全不同的触发方式。我也必须自己解决问题。

他们的方式(我也使用过)是创建一个不可见的 1x1 像素系统窗口,该窗口拦截所有点击,包括窗口外的点击,获取它们的 X 坐标,然后不变地传递点击事件:

public boolean onTouch(View v, MotionEvent event) {
    x = event.getRawX();
    return false;
}

然后,当某些点击触发您的 ContentIntent(并且您知道该点击的 X 坐标)时,您会计算要做什么。

于 2013-03-04T13:53:03.093 回答
0

GingerBread 需要一个 ContentIntent。所以我添加了一个虚拟的待处理意图,例如:

        pi = PendingIntent.getBroadcast(this, 0, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT);
        Notification notification =  new NotificationCompat.Builder(this).setAutoCancel(true)
                                        .setContentTitle(userString)
                                        .setContentText("Queued")
                                        .setContentIntent(pi)
                                        .setSmallIcon(R.drawable.stat_sys_download_done)
                                        .setWhen(System.currentTimeMillis())
                                        .setTicker(tickerText)
                                        .build();
于 2013-03-04T13:28:54.103 回答