【发布时间】:2020-06-28 19:06:35
【问题描述】:
因此,正如标题所述,我正在寻找一种在连接电源充电器时启动 Android 设备的方法。我们正在制造处于信息亭模式的专用设备,并且正在使用 Android Management API 来设置设备上的所有内容。
这涵盖了我们的大部分要求,例如预安装应用程序、禁用其他所有内容、将其连接到托管 Google Play、获取设备报告等......但是对于这个强大的东西,我在文档中找不到任何解决方案。
问题是用户无法使用物理电源按钮(不要问我为什么 :)),并且当电池耗尽时,他们必须能够再次启动它,而无需拧下外壳即可到达物理按钮。
我知道这可以通过不同的方式完成,但我找不到任何适用于 Android Management API 的方法。我正在研究这种“快速启动”方法,因为它看起来很简单 https://source.android.com/devices/bootloader/unlock-trusty#off-mode-charging
最初,我虽然可以使用 devices/issueCommand 端点 https://developers.google.com/android/management/reference/rest/v1/enterprises.devices/issueCommand 以某种方式运行它,但它似乎只支持一些预定义的命令,例如:LOCK、RESET_PASSWORD 和 REBOOT。
也许我只是错过了一些东西。如果有人想到另一种方法,请分享。
如果有任何帮助,我们还将 Android 管理 API 与 PubSub API 挂钩,并在那里提供一个用于提取设备报告的主题。从理论上讲,我可以在那里列出“电源连接”事件,并在设备上运行一些命令。但同样,问题在于如何在设备上远程运行此命令。
也许解决方案是制作另一个应用程序,该应用程序将作为运行此命令的后台进程运行。我想我需要在策略中将其添加为“receiverActivity”。但同样的问题仍然存在……如何从 Android Management API 调用此活动。
底线是这需要完全自动化。在每台设备上手动运行此命令不是一种选择。
另外,值得一提的是,这是一个 Ionic 应用程序。尽管这可能并非不可能,但我们希望将此逻辑保留在应用程序本身之外。理想的解决方案是使用 Android Management API 远程运行一些 adb 命令。
或者也许有一个很好的 3rd 方应用程序可以做到这一点,我可以在策略中安装该应用程序并以某种方式调用它。
欢迎所有建议。也许我错过了一个简单的解决方案。
评论后更新:我不看实际的应用程序如何做到这一点。我正在寻找一种方法来在最初从 Android Management API 策略设置设备时执行一些“本机”命令。所以它应该只执行一次。当它最初设置所有内容时。它应该编辑设备上的某些文件(或运行某些命令)以启用此功能。稍后,它不应该关心设备是否打开,或者它上面运行了哪些应用程序。这里有几种不同的方法可以做到这一点https://android.stackexchange.com/questions/20021/automatically-power-on-android-when-the-charger-is-connected。我正在寻找一种方法来在最初设置设备时触发其中一个命令(仅一次)。换句话说,这应该只在设备注册时执行。它不应该关心设备上运行的任何应用程序。
【问题讨论】:
-
您不能以编程方式执行此操作,设备未开启以运行您的程序。这将是 OEM 需要在硬件级别构建到设备中的东西。考虑到这一点,您完全处于错误的水平。
-
这似乎是硬件和固件问题,而不是应用程序问题。
-
感谢您的回复。但我不是在寻找如何直接从应用程序中执行此操作的方法。我正在寻找一种方法来编辑设备上的某些内部文件(或其他东西),当它由管理 api 首次设置时,它总是会像这样运行。我不太明白为什么 OEM 需要这样做,或者通过固件,因为您可以通过多种方式在任何设备上获得此功能。例如这里有一些建议android.stackexchange.com/questions/20021/…
-
我只是在寻找一种在管理 api 策略设置其内容时触发其中一个命令的方法。当设备初始设置时,它应该只执行一次。之后,它不应该关心设备是否打开,或者设备上正在运行什么应用程序。
标签: android ionic-framework google-cloud-pubsub android-management-api