我正在播放通知,但我无法创建一个自定义布局的通知,该布局适用于Froyo(或低于3.0的其他Android版本),就像在ICS上一样。
问题在于我想将待处理的意图与任何单个视图相关联。
在我看来有一个解决方法,因为应用程序Notification Toggles会这样做,但我不知道如何。
请帮帮我。
此致
答案 0 :(得分:1)
我正在播放通知,但我无法创建一个自定义布局的通知,该布局适用于Froyo(或低于3.0的其他Android版本),就像在ICS上一样。
您可以在以前的版本上创建自定义布局,但无法可靠地响应其点击事件。
问题在于我想将待处理的意图与任何单个视图相关联。
在Android 4.1中添加的富通知之前,不支持此功能。由于制造商的修改,它可能适用于某些设备,但它不适用于所有设备。
在我看来有一个解决方法,因为应用程序Notification Toggles执行此操作但我不知道如何
“Notification Toggles”是设备固件(操作系统或制造商的修改)的一部分,而不是SDK应用程序的一部分。
答案 1 :(得分:1)
通知Toggles使用完全不同的方式触发Android 3.0以下的内容。我也必须自己解决这个问题。
他们的方式(我也使用过)是创建一个不可见的1x1像素系统窗口,它拦截所有点击,包括窗口外的点击,抓住他们的X坐标,然后传递click事件不变:
public boolean onTouch(View v, MotionEvent event) {
x = event.getRawX();
return false;
}
然后,当某些点击触发您的ContentIntent(并且您知道该点击的X坐标)时,您将计算该做什么。
答案 2 :(得分: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();