我能够在android中公开隐藏的RIL函数。我可以按如下方式实例化RIL类。
RIL objRil = new RIL(getApplicationContext()); //successful
RadioState c = objRil.getRadioState() //is giving radio not available. 有很多接受消息对象的函数。例如
Message response= Message.obtain();
objRil.getOperator(response);但是我收到一个错误,说消息目标不能为空。我不确定如何传递参数。
下面是我正在尝试调用的android源代码中的示例函数。
// C:\Users\SK\AppData\Local\Android\android-sdk\sources\android-22\com\android\internal\telephony\RIL.java
public void getOperator(Message result) {
RILRequest rr = RILRequest.obtain(RIL_REQUEST_OPERATOR, result);
if (RILJ_LOGD)
riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
send(rr);
}我猜这个消息对象的作用类似于输出参数。调用此函数的正确方式是什么?
发布于 2016-02-06 04:12:31
你得到了RADIO_NOT_AVAILABLE响应,因为你的RIL对象没有“连接”到任何RILD进程(RIL守护进程)
操作员是RIL发送到基带处理器(调制解调器)的GET消息,用于检测设备注册了哪个操作员。
响应应该是这样的:
RILJ: [1234]> OPERATOR
//PLMN Number, PLMN Long Name, PLMN Short Name
RILJ: [1234]< OPERATOR {31000, Verizon Wireless, Verizon}但是,由于您的RIL实例未连接到任何RILD进程,因此您将始终获得RADIO_NOT_AVAILABLE响应。我的意思是,您正在发送GET消息,但没有无线电来回复您的GET消息。
有一个RILD进程正在运行,它可能连接到系统创建的RIL.java对象。您可以通过以下方式查看RIL日志:
adb logcat -b radio双sim模型有时有两个RILD进程(每个SIM卡一个)和两个RIL.java实例(每个SIM卡一个)。
我不确定创建一个RIL java实例并将其连接到RILD进程是否那么简单。
不知道如何才能做到这一点。
https://stackoverflow.com/questions/32547415
复制相似问题