首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android调用RIL方法

Android调用RIL方法
EN

Stack Overflow用户
提问于 2015-09-13 15:41:07
回答 1查看 1.3K关注 0票数 0

我能够在android中公开隐藏的RIL函数。我可以按如下方式实例化RIL类。

代码语言:javascript
复制
RIL objRil = new RIL(getApplicationContext()); //successful
RadioState c = objRil.getRadioState() //is giving radio not available. 

有很多接受消息对象的函数。例如

代码语言:javascript
复制
Message response= Message.obtain();
objRil.getOperator(response);

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

下面是我正在尝试调用的android源代码中的示例函数。

代码语言:javascript
复制
// 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);
}

我猜这个消息对象的作用类似于输出参数。调用此函数的正确方式是什么?

EN

回答 1

Stack Overflow用户

发布于 2016-02-06 04:12:31

你得到了RADIO_NOT_AVAILABLE响应,因为你的RIL对象没有“连接”到任何RILD进程(RIL守护进程)

操作员是RIL发送到基带处理器(调制解调器)的GET消息,用于检测设备注册了哪个操作员。

响应应该是这样的:

代码语言:javascript
复制
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日志:

代码语言:javascript
复制
adb logcat -b radio

双sim模型有时有两个RILD进程(每个SIM卡一个)和两个RIL.java实例(每个SIM卡一个)。

我不确定创建一个RIL java实例并将其连接到RILD进程是否那么简单。

不知道如何才能做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32547415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档