安卓动态壁纸的点击事件

3
当您想在您的生活桌面上处理单击时,应使用onCommand并等待操作WallpaperManager.COMMAND_TAP。例如,这在讨论线程中有描述:Android Live Wallpaper Touch Event Hierarchy
这在我的手机上运行得很好,但当我将壁纸部署到平板电脑(在我的情况下是带有Android 3.1的Motorola Xoom)时,当主屏幕上的图标被按下时也会触发COMMAND_TAP。
我通过存储可见状态并将onCommand处理延迟1000毫秒来添加了一个解决方法,但我想要一个真正的解决方法来解决这个问题。

我也在三星Galaxy S II上看到了这个问题,但大多数其他手机上没有。当按下小部件时也会发生这种情况。您能详细说明一下您的解决方法吗? - Kenton Price
这在Android 8.0上怎么还是个问题?!Nexus 5x原厂镜像。 - Flyview
我在Android问题跟踪器上报告了它:https://issuetracker.google.com/issues/68467342 - Flyview
1个回答

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);
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接