android使用GSMPhone与rild

时间:2016-03-18 10:52:22

标签: android radio gsm sim-card ril

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

我在此帖子之后解锁了完整的Android API(包括com.android.internal。*)。{/ 3}}。

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

我可以从我的应用中实现GSMPhone,但之后,我无法执行supplyPingetImei等任何命令。我总是有同样的错误:

CommandException: RADIO_NOT_AVAILABLE

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

  1. adb shell ps | grep rild检查RILD是否正在运行。
  2. 由于你可以访问所有的api,做一些像电话应用程序OnCreate中的PhoneApp做的初始化(主要是设置调制解调器到调制解调器,设置无线电电源,这将打开/关闭调制解调器等)