当您想处理生活壁纸中的点击时,您应该使用 onCommand 并等待操作 WallpaperManager.COMMAND_TAP。这被描述为例如在讨论线程中:Android Live Wallpaper Touch Event Hierarchy .
这在我的手机上运行良好,但是当我将壁纸部署到平板电脑(在我的例子中是带有 android 3.1 的摩托罗拉 xoom)时,按下主屏幕上的图标时也会触发 COMMAND_TAP。
我通过存储可见状态并将 onCommand 处理延迟 1000 毫秒来添加一个解决方法,但我想要一个真正解决这个问题的方法。
最佳答案
我们在三星手机上遇到了同样的问题,仅在 Droid Charge SCH-I510 和 S2 上得到验证。 S3 不会表现出这种行为。
这是 Gizmomogwai 在代码中提到的解决方法。
public Bundle onCommand(String action, int x, int y, int z, Bundle extras, boolean resultRequested) {
if (WallpaperManager.COMMAND_TAP.equals(action)) {
final CustomWallpaperEngine that = this;
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
if(that.isVisible()) {
// valid tap command
// DO STUFF
} else {
// Invalid tap command, throw away
}
}
}, 1000);
}
}
关于安卓动态壁纸点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7242007/