Android设置或其他活动的东西

时间:2017-11-30 20:53:11

标签: android raspberry-pi3 android-things

我在带有触摸屏的Raspberry PI 3上使用了Android Things。我需要配置wifi连接,例如。通过意图调用WiFi设置,配置后我需要返回我的应用程序,但我只有一个按钮,连接到pin。此按钮必须在Android设备上作为后退按钮工作。 按下按钮时执行以下代码:

Runtime.getRuntime().exec("adb shell input keyevent 4");

但我得到例外:

java.io.IOException: error=13, Permission denied

当我通过命令行从PC发送命令时 - 一切正常,但在设备上 - 权限被拒绝 怎么了?这是因为我的android没有root?

还尝试在主要活动中调用OnBackPress,但这只能在我的应用程序中工作,而不能从设置中恢复。

2 个答案:

答案 0 :(得分:0)

如果您没有root,则无法使用shell命令在设备上执行直接按键操作。你需要使用InputDriver让你的按钮向系统发送一个事件(虽然我不确定它是否支持BACK按钮)。

此外,如果您在设备上运行shell命令,则不需要adb shell。你已经在外壳了。

答案 1 :(得分:0)

使用最新版本的AndroidThings(DP6),您可以通过启动器设置Wifi连接(在安装应用程序之前)。

wifi launcher

  

当没有其他开发者提供的IOT_LAUNCHER活动存在时,此启动器可见。

一旦你设置了wifi(使用触摸屏),你就可以安装你的应用程序了。

如果您想要更具编程性的方法,可以安装您的应用,但禁用具有IOT_LAUNCHER意图的活动。这将让发射器展现出来。同时,您已注册监视连接更改,当连接wifi时,您重新启用启动器活动。 (这只是理论上我没试过这个)。

使用最新版本的DP8,您现在需要:

 <category android:name="android.intent.category.HOME"/>

在你的意图中,它取代了IOT_LAUNCHER(https://developer.android.com/things/preview/releases.html