2010-07-11 3 views
2

Я купил телефон Samsung Galaxy I9000, зная, что у него нет трекбола или тачпада/cursorkeys. Я подумал: просто напишите приложение, которое читает жесты и отправляет/генерирует соответствующие события курсора. Проверяя документацию SDK и обнаружив, что это возможно после предоставления моему приложению разрешения «INJECT_EVENTS»: «Позволяет приложению вводить пользовательские события (клавиши, касание, трекбол) в поток событий и доставлять их в ЛЮБОМ окне. Без этого разрешения, вы можете только доставлять события в окна в своем собственном процессе ».HowTo имитирует движение трекбола/курсора на устройстве Android?

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

После нескольких часов экспериментов я не нашел способа заставить свою программу вводить события курсора в любую другую программу, кроме моей. Как это можно достичь без разрешения «INJECT_EVENTS»?

+0

Вы хотите, чтобы ваше приложение что-то делало с массовыми последствиями безопасности без необходимого разрешения? Я думаю, что если вы найдете способ сделать это, вы найдете огромную ошибку, которая нуждается в исправлении. :) – adamp

+0

Это было бы правдой, если бы это проходило проверку безопасности тихо - но когда я запрашиваю разрешение «INJECT_EVENTS», я не возражаю против того, чтобы система спрашивала меня, хочу ли я разрешить ее во время процедуры установки. Мне нужно такое приложение (потому что у Samsung Galaxy I9000 нет курсорной панели или трекбола). – user388759

ответ

0

Как отмечает @adamp в комментариях, нет способа сделать это без разрешения INJECT_EVENTS, поскольку это будет огромной ошибкой безопасности. Кроме того, this question и this bug, похоже, указывают, что INJECT_EVENTS является разрешением на системном уровне и недоступно для несистемных приложений.

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