【问题标题】:Android Live Wallpaper Tap EventAndroid 动态壁纸点击事件
【发布时间】:2011-08-30 10:47:25
【问题描述】:

当您想要处理生活壁纸中的点击时,您应该使用 onCommand 并等待操作 WallpaperManager.COMMAND_TAP。这被描述为例如在讨论帖中:Android Live Wallpaper Touch Event Hierarchy

这在我的手机上运行良好,但是当我将壁纸部署到平板电脑(在我的情况下是带有 android 3.1 的摩托罗拉 xoom)时,当按下主屏幕上的图标时,也会触发 COMMAND_TAP。

我添加了一个解决方法,即存储可见状态并将 onCommand 处理延迟 1000 毫秒,但我想要一个真正解决此问题的方法。

【问题讨论】:

  • 我在三星 Galaxy S II 上也看到了这一点,但在大多数其他手机上都没有。按下小部件时也会发生这种情况。你能详细说明你的解决方法吗?
  • 这在 Android 8.0 上怎么还是个问题?! Nexus 5x 库存工厂图片。
  • 我在 Android 问题跟踪器上报告了它:issuetracker.google.com/issues/68467342

标签: android event-handling live-wallpaper


【解决方案1】:

三星手机也存在同样的问题,仅在 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);
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    相关资源
    最近更新 更多