2014-01-10 2 views
-2

Я хотел бы создать жест секретного события, который будет жестко привязан к моему приложению, чтобы активировать функцию.как сделать секретный жест на экране Android?

секрет меню скрытого админ, который запросит пароль администратора и сделать администратор сотрудников, и я хотел бы, чтобы показать после того как пользователь сделать:

5 пальцев anywere на экране в течение 5 секунд

это делается для того, чтобы не добавлять в приложение видимую кнопку админатора, так как пользователю не нужно ее видеть и не использовать для этого.

Может ли кто-нибудь предоставить мне часть кода для достижения этого? я искал, но не нашел пример для вида жеста мне нужно ...

пс: код может быть для укорененных устройств .. так как это для конкретных устройств коренится ..

Большое спасибо за помощь :-)

+0

Если вы ищете решение для секретного меню или раздела администрирования, просто имейте в виду, что это не безопасное решение. – MRodrigues

ответ

1

Вы можете установить OnTouchListener на корневой вид, а затем проверить getPointerCount() метод в MotionEvent наряду с таймером, чтобы проверить это.

Вот краткий пример:

импорт android.view.View.OnTouchListener;

private static final int FIVE_SECONDS = 5 * 1000; // 5s * 1000 ms/s 
private long fiveFingerDownTime = -1; 


getWindow().getDecorView().findViewById(android.R.id.content).setOnTouchListener(new OnTouchListener() {   

@Override 
public boolean onTouch(View v, MotionEvent ev) { 
    final int action = ev.getAction(); 
    switch (action & MotionEvent.ACTION_MASK) { 
     case MotionEvent.ACTION_POINTER_DOWN: 
      if (ev.getPointerCount() == 5) { 
       // We have five fingers touching, so start the timer 
       fiveFingerDownTime = System.currentTimeMillis(); 
      } 
      break; 

     case MotionEvent.ACTION_POINTER_UP: 
      if (ev.getPointerCount() < 5) { 
       // Fewer than five fingers, so reset the timer 
       fiveFingerDownTime = -1; 
      } 
      final long now = System.currentTimeMillis(); 
      if (now - fiveFingerDownTime > FIVE_SECONDS && fiveFingerDownTime != -1) { 
       // Five fingers have been down for 5 seconds! 
       // TODO Do something 
      } 

      break; 
    } 

    return true; 
} 
}); 
0

Вот соответствующее сообщение в блоге Android о многозонных жестов. http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html

+0

спасибо, но как я могу реализовать этот конкретный жест? 5 очков пальцев (независимо от их местоположения) в течение 5 секунд? я думаю, что это связано с «долгой печатью», спасибо – itai