1

我正在使用运行 Android 2.3.3 的非手机设备。我们有一个自定义的 Android 版本(带有一些额外的驱动程序),并且我的应用程序具有“系统”权限,因为我们使用用于构建 android 的相同密钥构建我们的应用程序。

在这篇文章之后,我已经解锁了完整的 Android API(包括 com.android.internal.*):https ://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-1-introduction/ .

我从设备中删除了 Phone.apk 以确保没有进程正在使用 rild。

我可以从我的应用程序中实例化一个 GSMPhone,但之后,我无法执行任何命令,例如supplyPinor getImei。我总是有同样的错误: 

CommandException: RADIO_NOT_AVAILABLE.

我真的被困在这里,任何帮助都是宝贵的。

4

2 回答 2

0
  1. 亚行壳ps | grep rild 检查 RILD 是否正在运行。
  2. 由于您可以访问所有 api,因此请在电话应用程序 OnCreate 中进行一些初始化,如 PhoneApp 所做的(主要是设置调制解调器的参数,设置将打开/关闭调制解调器的无线电功率等)
于 2017-06-14T03:38:45.010 回答
0

CommandException: RADIO_NOT_AVAILABLE表示 rild 插座未打开。换句话说,rild 服务没有附加到您正在使用的底层 basebane/调制解调器。

在 adb shell 中运行ps以检查 rild 服务是否在列表中。如果它在列表中,运行ls -l /dev/tty*并检查与Android平台连接的调制解调器设备是否存在于此。如果它不存在,则意味着内核无法枚举您的调制解调器设备,您需要在内核中为其添加支持。如果存在,请运行adb logcat -b radio并检查无线电日志输出,这确实有助于进一步诊断问题。

于 2017-01-31T07:18:14.897 回答