更新到 Lollipop 后,Spen 触摸监听器无法正常工作
Posted
技术标签:
【中文标题】更新到 Lollipop 后,Spen 触摸监听器无法正常工作【英文标题】:Spen touch listener not working after update to Lollipop 【发布时间】:2015-10-28 10:26:33 【问题描述】:我正在使用 SPenEventLibrary 来识别触摸是由手指还是 Spen 完成的。在我更新到 android L 之前,它一直都在工作。
设备:Galaxy Note 3。
Spen 库是最新的:libspen23.jar、pen-v3.1.8.jar
安卓版本:5.0。
代码很简单:
mSPenEventLibrary.setSPenTouchListener(this, new SPenTouchListener()
@Override
public boolean onTouchFinger(View view, MotionEvent event)
if (ApplicationPreferences.get(mContext).getSPENWristGaurdOnOff() == false)
return handleEvent(event);
else
return true;
@Override
public boolean onTouchPen(View view, MotionEvent event)
return handleEvent(event);
@Override
public void onTouchButtonDown(View arg0, MotionEvent arg1)
@Override
public void onTouchButtonUp(View arg0, MotionEvent arg1)
@Override
public boolean onTouchPenEraser(View arg0, MotionEvent arg1)
);
当我使用 Spen 触摸屏幕时,会调用 onTouchFinger() 而不是 onTouchPen()。在较旧的 Android 版本上,调用了 onTouchPen()。
【问题讨论】:
我也遇到了同样的问题...请大家帮忙! 【参考方案1】:这是三星开发者论坛的回答:
public boolean onTouch(View view, MotionEvent event)
boolean done = false;
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH)
if (event.getMetaState() == 0)
//Finger
// Do whatever you need to do here
done = true;
else if(event.getMetaState() == 512)
//Pen
// Do whatever you need to do here
done = true;
else
if (event.getToolType(0) == MotionEvent.TOOL_TYPE_FINGER)
//Finger
// Do whatever you need to do here
done = true;
else if(event.getToolType(0) == MotionEvent.TOOL_TYPE_STYLUS)
//Pen
// Do whatever you need to do here and then
done = true;
if (done)
return true;
return super.onTouch(view, event);
【讨论】:
以上是关于更新到 Lollipop 后,Spen 触摸监听器无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章