Как обнаружить и предотвратить воровство фокуса в приложении для Android
Вопрос 1: Можно ли обнаружить, что другое приложение для Android крадет фокус вашего приложения?
В2: Можно ли предотвратить блокирование фокуса другим приложением другого приложения для Android?
Я вижу только "фокус" аудио в документах, но не "захват" фокуса экрана: http://developer.android.com/training/managing-audio/audio-focus.html
Посмотрите здесь, почему я задаю эти вопросы: http://blog.spiderlabs.com/2011/09/google-android-focus-stealing-vulnerabiltiy-demo.html
1 ответ
AFAIK, этот пост (и сопровождающее софоморское видео) имеет отношение к атаке с использованием кражи, которая была исправлена в Android 4.0.3 (и, возможно, в Android 3.x).
В Android 1.x/2.x вы не можете определить, когда другое приложение имеет окно перед вашим, и, следовательно, может красть данные. Для Android 2.3 вы можете добавить android:filterTouchesWhenObscured="true"
к виджету или контейнеру, который будет препятствовать получению затронутыми виджетами сенсорных событий, которые были сначала перехвачены другим приложением. Это не идеальное решение, но может быть полезно для критических областей, таких как пароли.