android 使用 GSMPhone 与 rild 通信

问题描述 投票:0回答:2
我正在使用运行 Android 2.3.3 的非电话设备。我们有一个自定义的 Android 版本(带有一些额外的驱动程序),并且我的应用程序具有“系统”权限,因为我们使用与构建 android 相同的密钥构建我们的应用程序。

我在这篇文章之后解锁了完整的 Android API(包括 com.android.internal.*):

https://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-1-简介/.

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

我可以从我的应用程序实例化 GSMPhone,但之后,我无法执行任何命令,例如

supplyPin

getImei
。我总是遇到同样的错误:

CommandException: RADIO_NOT_AVAILABLE

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

android gsm sim-card ril
2个回答
0
投票

CommandException: RADIO_NOT_AVAILABLE

表示rild套接字没有打开。换句话说,rild 服务未附加到您正在使用的底层基带/调制解调器。 

在 adb shell 中运行

ps

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


0
投票
    adb shell ps | grep rild 检查 RILD 是否正在运行。
  1. 由于您可以访问所有 api,因此请像 PhoneApp 在电话应用程序 OnCreate 中所做的那样进行一些初始化(主要是为调制解调器设置参数,设置将打开/关闭调制解调器的无线电电源等)
© www.soinside.com 2019 - 2024. All rights reserved.