Android Живые Обои Touch Event Hierarchy - PullRequest
3 голосов
/ 28 ноября 2010

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

Можно ли определить, прикоснулся ли пользователь к фоновому экрану (т. Е. Пропуски между значками), чтобы я мог выполнять только свои действия в это время и игнорировать другие.

Если это не удастся (и предположить - возможно, ошибочно - что если я сначала в очереди, а на экране нет другого приложения), я могу определить, где я нахожусь в очереди событий касания, чтобы принимать меры только в том случае, если я первый в очереди?
Или любые другие предложения, пожалуйста. Спасибо Ричард

1 Ответ

10 голосов
/ 23 декабря 2010

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

@Override
public Bundle onCommand(String action, int x, int y, int z, Bundle extras, boolean resultRequested) {
    if (action.equals(WallpaperManager.COMMAND_TAP)) {
        // do whatever you would have done on ACTION_UP
    }
    return null;
}
...