【问题标题】:Android things back from settings or other activities从设置或其他活动返回的 Android 内容
【发布时间】:2017-11-30 20:53:11
【问题描述】:

我在带有触摸屏的 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,但这仅在我的应用程序中有效,不能从设置中返回。

【问题讨论】:

  • 请提供minimal reproducible example。还要解释你在哪里运行代码?您是在 Android 设备上还是在台式机上运行它?
  • @Code-Apprentice Evgeniy 正在 Raspberry PI 3 上运行他的代码。我认为重现该问题不需要任何可验证的代码。 AndroidThings 上没有返回按钮。我也有同样的问题。一定有什么方法可以点击后退按钮,但我找不到。

标签: android raspberry-pi3 android-things


【解决方案1】:

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

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

【讨论】:

  • Android Things 是根用户。
【解决方案2】:

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

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

设置好 wifi(使用触摸屏)后,您就可以安装应用了。


如果您想要一种更加程序化的方法,您可以安装您的应用,但禁用具有 IOT_LAUNCHER 意图的活动。这将使启动器显示。同时,您已注册监控连接更改,当 wifi 连接时,您重新启用启动器活动。 (这只是理论上的,我还没有尝试过)。


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

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

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

【讨论】:

  • 他问如何从他的屏幕上配置 wifi 然后回到他的应用程序。
  • 我的理解是他需要“从设置或其他活动中恢复”。 WiFi 配置只是一个例子。
猜你喜欢
  • 2015-07-26
  • 2012-04-26
  • 1970-01-01
  • 2011-02-04
  • 1970-01-01
  • 2013-02-25
  • 2018-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多