是的,这是可能的,但是如果不深入了解存在多个版本的调制解调器通信代码,甚至这将取决于系统是否允许您在设备上执行通信,则很难在设备上执行。
我知道目前唯一可以在设备上完全操作的是高通(高通是大多数设备的标准配置,但三星在某些情况下使用威盛,这是一个完全不同的怪物,甚至还有另一个芯片组或两个存在),但甚至能够使用高通的芯片组执行您的要求,以下必须为真:
- 设备必须植根。
- 应用程序必须具有 root 访问权限。
- 系统 ROM 必须能够将蜂窝无线电置于调制解调器诊断模式。
- 设备必须具有适当的权限才能允许访问。
此时,大多数人会将他们的计算机连接到他们的设备并使用 QPST、CDMAWare 或 QXDM 操作蜂窝无线电。这些用户可用的选项包括从操纵蜂窝用户数据到重新启动蜂窝调制解调器的所有内容。
但是,这就是事情变得棘手的地方,您需要能够从设备端访问它,这取决于设备、操作系统和它的配置......很可能是不可能的。
此外,您的应用程序必须能够使用上述应用程序用来进行通信的特殊协议与蜂窝无线电通信,这需要您非常熟悉该规范。如果您足够努力的话,Qualcomm 诊断协议的白皮书就会在网上流传。
同样在不太酷的方面,如果您的应用程序可以访问无线电......任何其他有根应用程序(甚至非根,如果您没有正确设置设备权限)也可以访问,从而使 rouge 应用程序能够更改您的收音机的配置数据甚至可能使您的设备变砖(我见过人们使用上面提到的应用程序)。
所以我的回答是肯定的,你可以做到,虽然:
- 根据您可能无法使用的设备,您应该做好充分准备来学习和开发所需的工具来执行您想做的事情
- 没有可遵循的快速入门指南
- 请记住,您这样做是因为知道您的设备可能会因编码错误或恶意应用程序而被阻塞。
- 正如您在设备菜单中所做的那样,重新启动收音机可能无法解决您的问题,您可能仍需要重新启动设备
我的建议是使用一种更简单的方法,并在您当前的应用程序中包含一个自动重启的计时器,它更安全,不会让您的设备变砖,而且您不必成为一名蜂窝工程师来弄清楚如何完成它。
当收音机死机时,您的计时器可能会开始倒计时,并为您提供一个选项以在您执行重要操作时停止重新启动,否则它将重新启动您的设备,当您伸手拨打电话或查看您的电子邮件时,一切都准备就绪.
希望我能够提供帮助,即使我知道这不是您想要的答案。
旁注,如果您可以从外部应用程序劫持 Android 的系统配置菜单,您可能会使用 Android 中使用的相同方法来操纵无线电状态……但您已经发现以这种方法重新启动无线电对您的情况没有帮助。Plus Android 旨在防止此类操作,以防止恶意应用程序超越其他应用程序和系统的 UI。