安卓动态壁纸点击事件

标签 android event-handling live-wallpaper

当您想处理生活壁纸中的点击时,您应该使用 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/

相关文章:

android - 在 Android 应用程序中嵌入 v8

android - 动态壁纸偏好问题

javascript - 将 jQuery 事件处理程序绑定(bind)到多个相似的表单

c# - 单击控件外部时如何关闭 Silverlight 中的弹出窗口?

java - 处理 Java 按键事件

android - 动态壁纸作为应用程序背景

android - 在 Android 中设置动态壁纸时出现奇怪的异常

android - 构建 Android NDK 项目的问题

android - 防止android项目加载原生库

android - 清理 Intent 文件 URI