2011-08-30 157 views
3

当你要处理在你的生活壁纸点击一下,你应该使用按需,等待行动WallpaperManager.COMMAND_TAP。这例如描述于在讨论主题:Android Live Wallpaper Touch Event HierarchyAndroid动态壁纸点按事件

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

我通过存储可见状态和1000ms的延迟按需处理增加了一个解决办法,但我想这个问题的真正解决。

+0

我在三星Galaxy S II上也看到了这一点,但在大多数其他手机上都没有。它也发生在按下小部件时。你能提供你的解决方法的细节吗? –

+0

这对于Android 8.0还是个问题? Nexus 5x库存工厂图像。 – Flyview

+0

我在Android问题跟踪器上报告了它:https://issuetracker.google.com/issues/68467342 – Flyview

回答

0

我们遇到与三星手机,只对Droid的收费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); 
    } 
}