在银河S4上浮动触摸

时间:2013-05-21 09:47:17

标签: android hover galaxy samsung-mobile

三星Galaxy S4具有“浮动触摸”功能,即使未触摸屏幕,也可以检测到手指。

当手指悬停时,我想在按钮(btn1)上发射一个事件。

我尝试使用OnHoverListener,但onHoverMotionEventMotionEvent.ACTION_HOVER_ENTERMotionEvent.ACTION_HOVER_EXIT时,MotionEvent.ACTION_HOVER_MOVE永远不会被调用我需要的事件。

这是我的代码:

btn1.setOnHoverListener(new OnHoverListener() {
@Override
public boolean onHover(View v, MotionEvent event) {
    Log.d("FloatingTouch", "onHover: "+event.getAction());
    switch (event.getAction()) {
      case MotionEvent.ACTION_HOVER_ENTER:
          Log.d("FloatingTouch", "ACTION_HOVER_ENTER" );
          return true;
      case MotionEvent.ACTION_HOVER_MOVE:
          Log.d("FloatingTouch", "ACTION_HOVER_MOVE" );
          return true;
      case MotionEvent.ACTION_HOVER_EXIT:
          Log.d("FloatingTouch", "ACTION_HOVER_EXIT" );
          break;
      default:
          break;
    }
    return false;
}
});

我错过了什么吗?也许一些许可?

1 个答案:

答案 0 :(得分:4)

好的,我终于明白了!

要使其发挥作用,您必须:

  1. 为清单中的活动com.sec.android.airview.HOVER添加新的意图过滤器:
  2. <intent-filter>
    <action android:name="com.sec.android.airview.HOVER" />
    </intent-filter>
    
    1. 向您添加onHoverListener View
    2. convertView.setOnHoverListener(new OnHoverListener() {
          @Override
          public boolean onHover(View v, MotionEvent event) {
              Log.d("ListAdapter", "Hover: " + item);
              return false;
          }
      });
      

      它会起作用。