我在这篇文章之后解锁了完整的 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
。我真的被困在这里,任何帮助都是宝贵的。
CommandException: RADIO_NOT_AVAILABLE
表示rild套接字没有打开。换句话说,rild 服务未附加到您正在使用的底层基带/调制解调器。在 adb shell 中运行
ps
检查 rild 服务是否在列表中。如果在列表中,运行
ls -l /dev/tty*
,检查这里是否存在Android平台附带的调制解调器设备。如果它不存在,则意味着内核无法枚举您的调制解调器设备,您需要在内核中添加对其的支持。如果存在,请运行
adb logcat -b radio
并检查无线电日志输出,这确实有助于进一步诊断问题。