6

由于一些网络相关问题,我的安卓手机的收音机时不时地默默地死掉。在 Nexus 4 上,它显示空三角形,好像该区域没有可用的服务。在其他手机上,它甚至不这样做。看起来信号很好。

无论如何,在收音机无声无息地消失后,没有任何电话/短信/数据在任何方向通过。我从系统得到的唯一提示是android.net.conn.CONNECTIVITY_CHANGE当信号消失且 wifi 未连接时触发的广播。

唯一能解决问题的是重启手机。

最后我的问题

有人知道如何通过代码完全重启收音机吗?

我的意思是,它是在单独的 CPU 上运行的单独映像。必须有一种方法可以在不重新启动手机的情况下重新启动它。也许有什么东西,我可以进入Android ROM。我在这里运行 CM,很高兴(再次)修补它。

我尝试通过按下*#*#4636#*#*dailer 并停止收音机并重新启动来启动系统应用程序来修复它。但这根本没有帮助。

我最近制作了一个应用程序,每次连接更改时都会检查收音机。它显示一个简单的通知,告诉我,我应该重新启动手机。[1]

问题转载于:

  • LG 连结 4
  • 三星王牌 2
  • 多部 Apple iPhone 4*

未在以下位置复制的问题:

  • 苹果 iPhone 5

在 Dialog.lk 网络中运行的所有电话。

[1] https://github.com/felixb/network-checker

4

2 回答 2

2

在有根设备上,可以对作为用户无线电运行的所有进程发出 pkill 命令。我在 Oneplus 3 上进行了测试,系统似乎立即重启了服务:

pkill -u radio

于 2017-04-24T05:11:45.250 回答
1

是的,这是可能的,但是如果不深入了解存在多个版本的调制解调器通信代码,甚至这将取决于系统是否允许您在设备上执行通信,则很难在设备上执行。

我知道目前唯一可以在设备上完全操作的是高通(高通是大多数设备的标准配置,但三星在某些情况下使用威盛,这是一个完全不同的怪物,甚至还有另一个芯片组或两个存在),但甚至能够使用高通的芯片组执行您的要求,以下必须为真:

  1. 设备必须植根。
  2. 应用程序必须具有 root 访问权限。
  3. 系统 ROM 必须能够将蜂窝无线电置于调制解调器诊断模式。
  4. 设备必须具有适当的权限才能允许访问。

此时,大多数人会将他们的计算机连接到他们的设备并使用 QPST、CDMAWare 或 QXDM 操作蜂窝无线电。这些用户可用的选项包括从操纵蜂窝用户数据到重新启动蜂窝调制解调器的所有内容。

但是,这就是事情变得棘手的地方,您需要能够从设备端访问它,这取决于设备、操作系统和它的配置......很可能是不可能的。

此外,您的应用程序必须能够使用上述应用程序用来进行通信的特殊协议与蜂窝无线电通信,这需要您非常熟悉该规范。如果您足够努力的话,Qualcomm 诊断协议的白皮书就会在网上流传。

同样在不太酷的方面,如果您的应用程序可以访问无线电......任何其他有根应用程序(甚至非根,如果您没有正确设置设备权限)也可以访问,从而使 rouge 应用程序能够更改您的收音机的配置数据甚至可能使您的设备变砖(我见过人们使用上面提到的应用程序)。

所以我的回答是肯定的,你可以做到,虽然:

  • 根据您可能无法使用的设备,您应该做好充分准备来学习和开发所需的工具来执行您想做的事情
  • 没有可遵循的快速入门指南
  • 请记住,您这样做是因为知道您的设备可能会因编码错误或恶意应用程序而被阻塞。
  • 正如您在设备菜单中所做的那样,重新启动收音机可能无法解决您的问题,您可能仍需要重新启动设备

我的建议是使用一种更简单的方法,并在您当前的应用程序中包含一个自动重启的计时器,它更安全,不会让您的设备变砖,而且您不必成为一名蜂窝工程师来弄清楚如何完成它。

当收音机死机时,您的计时器可能会开始倒计时,并为您提供一个选项以在您执行重要操作时停止重新启动,否则它将重新启动您的设备,当您伸手拨打电话或查看您的电子邮件时,一切都准备就绪.

希望我能够提供帮助,即使我知道这不是您想要的答案。

旁注,如果您可以从外部应用程序劫持 Android 的系统配置菜单,您可能会使用 Android 中使用的相同方法来操纵无线电状态……但您已经发现以这种方法重新启动无线电对您的情况没有帮助。Plus Android 旨在防止此类操作,以防止恶意应用程序超越其他应用程序和系统的 UI。

于 2013-09-06T04:10:52.170 回答