使用Android应用程序控制设备

时间:2014-08-06 13:28:24

标签: keyevent android

我正在开发一个应用程序来控制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。但是,它甚至无法奏效!仍然是同一个问题。如果有人知道解决方法,请分享。

否则,如果你知道导航(控制)设备的任何其他方式,请告诉我。

0 个答案:

没有答案