【发布时间】:2016-01-14 09:39:36
【问题描述】:
我的项目涉及通过蓝牙和 wifi 将工厂标准(例如未植根)Android 手机连接到 PC,但手机本身不可物理访问(它位于锁定的塑料盒中)并且不适合人。
有没有办法通过蓝牙或 wifi 发送某种命令来让安卓手机自行重启?
【问题讨论】:
标签: android bluetooth android-wifi
我的项目涉及通过蓝牙和 wifi 将工厂标准(例如未植根)Android 手机连接到 PC,但手机本身不可物理访问(它位于锁定的塑料盒中)并且不适合人。
有没有办法通过蓝牙或 wifi 发送某种命令来让安卓手机自行重启?
【问题讨论】:
标签: android bluetooth android-wifi
是的,但这很棘手。
有多种情况,但唯一的条件是蓝牙或 Wi-Fi 连接由第三方应用程序建立和维护,并且您可以访问此特定应用程序的代码(甚至更好,您是此应用的开发者)。
第一件事:相关应用必须能够通过蓝牙或 Wi-Fi 接收要求重启的命令。
如果您无权访问应用代码或不涉及第三方应用(即管理连接的操作系统 (Android) 本身),则根本无法运行。
现在,进入棘手的部分。 最简单的方法是相关设备已获得 root 权限,并且您的应用可以被授予超级用户 (root) 权限。 在这种情况下,一旦它收到重启命令,它可以执行如下重启过程:
Runtime.getRuntime().exec(new String[]{"/system/bin/su","-c","reboot 现在"});
或
Runtime.getRuntime().exec(new String[]{"/system/xbin/su","-c","reboot 现在"});
因为它可能取决于 su 二进制文件的位置。 无论如何,它可能不适用于所有设备,因此您应该尝试哪种方法适用于您将使用的设备。
现在,如果您没有 root 设备和/或您无法对相关设备进行 root,则当且仅当您将应用程序作为系统应用程序签名时,您可能能够做到这一点。
更多细节在这里:https://stackoverflow.com/a/4966542/3535408
希望对你有帮助!
【讨论】: