我正在开发一个应用程序来控制Android设备从一个Android设备,如通过输入keyevent控制设备。如果我想从一个设备上的应用程序中按菜单按钮,将打开另一个要控制的设备上的菜单按钮。
我想在点击设备上的按钮时传输一些数据。根据从发件人收到的数据,它将执行该操作。请指导我这样做。 有哪些方法可以使用API来在两台设备之间传输数据?
更新:
我使用套接字将数据从一个设备发送到另一个设备。接收方应用程序在后台运行并接收控制器发送的数据。根据该数据,接收器将执行该动作。操作就像是按下该设备上的按钮,如果接收数据是"返回",按下接收设备上的菜单按钮,如果接收数据是"菜单"
现在我的问题是如何从应用程序中执行这些活动(在真实设备上按下按钮)?
解决方案:
我曾经从keyevents导航设备。示例代码如下:
try { Instrumentation m_Instrumentation = new Instrumentation();
m_Instrumentation.sendKeyDownUpSync(keyCode);
} catch (Exception e) {
Log.d(TAG, "Permission denied!!!");
}
我通过将源代码放入AOSP来构建我的应用程序作为系统应用程序。我使用用户权限来访问它
<uses-permission android:name="android.permission.INJECT_EVENTS" />
尽管如此,我仍然被拒绝触发关键事件。 Logcat在下面:
D/ServerService( 668): down
D/ServerService( 668): down
D/ServerService( 668): down Button is pressed
D/ServerService( 668): down is pressed
W/InputDispatcher( 187): Permission denied: injecting event from pid 668 uid 10036 to window Window{41524818 com.android.launcher/com.android.launcher2.Launcher paused=false} owned by uid 10023
W/WindowManager( 187): Input event injection permission denied.
D/ServerService( 668): Permission denied!!!
问题:
如何解决上述问题&#34;权限被拒绝&#34;问题。我提到了the link。但是,它甚至无法奏效!仍然是同一个问题。如果有人知道解决方法,请分享。
否则,如果你知道导航(控制)设备的任何其他方式,请告诉我。