Для внедрения Android Keyevent требуются системные разрешения

#android

#Android

Вопрос:

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

   04-12 18:19:35.794: WARN/WindowManager(58): Permission denied: injecting key event        
  from pid 6290 uid 10039 to window Window{45034880  
   com.android.launcher/com.android.launcher2.Launcher paused=false} owned by uid 10020

   04-12 18:19:35.794: WARN/System.err(6290): java.lang.SecurityException: Injecting to 
    another application requires INJECT_EVENTS permission

 04-12 18:19:35.854: DEBUG/PhoneData(6290):

  04-12 18:19:36.048: WARN/System.err(6290):     at  
 android.os.Parcel.readException(Parcel.java:1247)

  04-12 18:19:36.048: WARN/System.err(6290):     at 
  android.os.Parcel.readException(Parcel.java:1235)
  

Я также даю разрешение на внедрение события
есть ли какой-либо способ предоставить приложению системные разрешения.

Ответ №1:

Только приложения, которые являются частью прошивки (т. Е. подписаны ключом подписи прошивки), могут иметь INJECT_EVENTS разрешение. Если вы создаете свое собственное устройство или прошивку, это будет актуально. Если вы создаете обычное приложение SDK, вы не можете вводить события.

Ответ №2:

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

Надеюсь, это поможет.