У меня есть служба, которая контролирует экран смартфона, при включении экрана посылаю команду нажать кнопку VOLUME_UP
Может ли кто-нибудь мне помочь?
public class receiverScreen extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
Log.e("SERVICE1", "SCREEN ON ..");
Thread myThread;
myThread = new Thread (new Runnable(){
public void run() {
// TODO Auto-generated method stub
try {
Thread.sleep(4000);
Instrumentation inst = new Instrumentation();
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_VOLUME_UP);
Log.e("SERVICE1", "VOLUME UP");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
myThread.start();
} else {
Log.e("SERVICE1", "SCREEN OFF...");
}
}
}
ОШИБКА ЖУРНАЛА
E/AndroidRuntime: FATAL EXCEPTION: Thread-5
Process: estadotela.example.com.estadotela, PID: 15593
java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission
at android.os.Parcel.readException(Parcel.java:1684)
at android.os.Parcel.readException(Parcel.java:1637)
at android.hardware.input.IInputManager$Stub$Proxy.injectInputEvent(IInputManager.java:537)
at android.hardware.input.InputManager.injectInputEvent(InputManager.java:865)
at android.app.Instrumentation.sendKeySync(Instrumentation.java:911)
at android.app.Instrumentation.sendKeyDownUpSync(Instrumentation.java:921)
at estadotela.example.com.estadotela.receiverScreen$1.run(receiverScreen.java:29)
at java.lang.Thread.run(Thread.java:761)