Android动态壁纸点击事件

时间:2011-08-30 10:47:25

标签: android event-handling live-wallpaper

如果您想处理生活壁纸中的点击,您应该使用onCommand并等待动作WallpaperManager.COMMAND_TAP。例如,这描述了在讨论主题中:Android Live Wallpaper Touch Event Hierarchy

这在我的手机上工作正常,但是当我将壁纸部署到平板电脑时(在我的情况下,使用android 3.1的motorola xoom)当按下主屏幕上的图标时,也会触发COMMAND_TAP。

我通过存储可见状态并将onCommand处理延迟了1000毫秒来添加了一种解决方法,但我想为这个问题提供一个真正的解决方案。

1 个答案:

答案 0 :(得分:0)

我们在三星手机上遇到了同样的问题,只在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);
  }
}