0

Я использую SPenEventLibrary, чтобы узнать, выполнено ли нажатие пальцем или Spen. все время он работал, пока не обновлен до Android Л.Spen touch прослушиватель не работает после обновления до Lolipop

устройства: Galaxy Note 3.

Спен Lib до даты: libspen23.jar, ручка-v3.1.8.jar

Android версия: 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(). Есть ли у вас идеи, что не так? Спасибо за помощь.

+0

Я бегу в одной и той же проблемой ... Кто-нибудь, пожалуйста, Помогите! – aveschini

ответ

0

Это ответ от Самсунга разработчиков форума:

общественного логический onTouch (View вид, MotionEvent событие) {

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); 

}

 Смежные вопросы

  • Нет связанных вопросов^_^