【问题标题】:Powering off Android Things关闭 Android Things
【发布时间】:2018-11-12 01:57:31
【问题描述】:

通常,要关闭 Android 设备,您当然可以通过电源按钮执行此操作。

您也可以使用adb shellreboot -p

但在 Android Things 中,我看不到关闭设备的方法。 如果没问题,我很乐意为此切断我的 Raspberry Pi 的电源,但这可以接受吗?它会损坏 SD 卡吗?

【问题讨论】:

  • 好问题。文档中没有任何内容,“嵌入式”/IoT 操作系统应该可以优雅地处理突然断电。
  • 我希望 Android Things 的设计方式能够很好地拔掉电源。我已经用我的开发工具包做了几次,似乎没有问题
  • @shalafi 我希望如此。在开发过程中,我在 Pi 上使用 Linux 做了很多次,但我为客户希望这种可能性的生产制作了只读 SD 卡

标签: android-things power-off


【解决方案1】:

Android(以及扩展的 Android Things)应该不会出现突然断电的问题。核心操作系统位于文件系统的只读分区中,因此不存在因运行中写入失败而损坏操作系统的风险。

另外,如果您想在测试或开发中使用reboot -p,它仍然可以工作。更进一步,您可以将Gpio 与发出KEYCODE_POWERInputDriver 连接起来,如果您觉得需要它,可以将您自己的电源按钮添加回系统。

【讨论】:

  • 谢谢,我想我会走这条路。我需要远程完成,可能使用 websocket 并在特定命令上关闭。我认为拔掉电源也应该没问题,因为它是只读的。只要我不让应用程序向它的文件目录写入内容
  • 刚刚经历突然断电,结果SD卡损坏。插入ubuntu,无法检测到sdcard。插入我的Android手机,它检测到sdcard,并显示警告sdcard需要格式化。从安卓手机格式化,插入ubuntu,不会再检测了。插入 Windows,它会检测,然后从 Windows 格式化。谢天谢地,再次工作。所以要小心。
  • @Devunwired 目前 KEYCODE_POWER 对于没有显示器和触摸屏的设备并不是特别有用。尝试将设备置于睡眠模式时,短按 KEYCODE_POWER 会关闭屏幕,长按会显示一个屏幕菜单,其中提供了必须单击的“关闭电源”和“重新启动”选项。
【解决方案2】:

我喜欢戴夫的回答,只是想补充两点:

您可以通过多种方式以编程方式关闭 Android Things 设备,但每种方式都附带一个警告,此处讨论:Turn off device programmatically

要像你说的那样关闭 AndroidThings 设备,你可以通过 ADB 做到这一点:

 adb shell reboot -p

-p--poweroff的缩写)

【讨论】:

  • 我需要远程关闭它,设备无头运行。我不希望客户需要执行 'adb shell reboot -p' :) 但是您提供的链接为我提供了多种选择,谢谢!
  • 您可以使用 Firebase 云消息来通知您的应用,然后执行其中一种编程选项。是的,您对亚行和客户的看法是正确的:-)
  • 在我的用例中,此设备不会连接到互联网,但对于我正在考虑的其他用例来说,这是一个不错的选择...
【解决方案3】:

...并以编程方式

用于关机

Runtime.getRuntime().exec("reboot -p");

重新启动

Runtime.getRuntime().exec("reboot");

Explanationreboot 二进制文件在 Android Things 映像中提供,具有全局可执行权限,即 rwxr-xr-x,这使得它可以在 任何应用程序进程。换句话说,与大多数现有的 Android 手机/平板电脑相比,应用程序进程不需要获得 su,因此在 AndroidManifest.xml 中不需要额外的权限。

注意:如果新操作系统版本中的安全模型发生变化,这种方法可能不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    相关资源
    最近更新 更多