繁体   English   中英

Android调用RIL方法

[英]Android Invoke RIL methods

我能够在android中公开隐藏的RIL函数。 我可以实例化RIL类,如下所示。

RIL objRil = new RIL(getApplicationContext()); //successful
RadioState c = objRil.getRadioState() //is giving radio not available. 

有许多采用Message对象的功能。 例如

Message response= Message.obtain();
objRil.getOperator(response);

但我收到一条错误消息,指出消息目标不能为空。 我不确定如何传递参数。

这是iam试图调用的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);
}

我猜想这个消息对象的行为就像一个输出参数。 什么是调用此函数的正确方法?

由于您的RIL对象未“连接”到任何RILD进程(RIL Deamon),因此您收到RADIO_NOT_AVAILABLE响应

OPERATOR是GET消息,RIL发送给基带处理器(MODEM)以检测设备注册了哪个操作员。

响应应该类似于:

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进程是否那么容易。

不确定如何实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM