WEB开发网
开发学院手机开发Android 开发 Android RIL 阅读

Android RIL

 2010-05-27 03:43:00 来源:WEB开发网   
核心提示:因此必须提供一种实时性较高访问的方式,二来可以提高通讯效率,Android RIL(2),其实最上层的ITelephony和SmsManager有点像WM里面的Connection Manager,呵呵,上面预设了你的参数作为拨号的号码,如果给dial的参数传入NULL,有意思,这是不是其实印证了一句话“万变不离其宗”

因此必须提供一种实时性较高访问的方式,二来可以提高通讯效率。

其实最上层的ITelephony和SmsManager有点像WM里面的Connection Manager,呵呵,有意思,这是不是其实印证了一句话“万变不离其宗”呢?

如何构建Android电话应用

2009-03-23 15:47

本文为御风独舞原创,转载请注明出处:hi.baidu.com/roooy,谢谢:)

上次介绍了一下Android的RIL架构,我们可以把它理解为是GSM模块的驱动,这次要介绍的是Telephony这个组件,我们把它和

WinCE做对比,发现它其实就是做了CellCore做的工作,只是CellCore依然很面向过程地单纯导出SDK,然后让上层驱动调用。

Telephony由于是运行在我们的Dalvik虚拟机上面的,所以它的实现也就更面向对象化了。接下来让我们看看怎么使用这个Telephony库开

发我们的电话应用。

Telephony库主要负责Android的拨打与接听电话功能,其中有两个重要的类分别是IPhone和PhoneNumberUtils是我

们实现电话功能必不可少的。当我们的应用需要拨打一个号码的时候,Android默认是没有授予我们这个应用的这个权限的,因此我们必须在

AndroidManifest.xml中去打开这个权限。AndroidManifest.xml是每一个应用都需要的文件,它位于应用的根目录下,文

件里描述了程序包的全局变量,包括暴露的应用组件(activities,

services等等)和为每个组件的实现类,以及什么样的数据可以操作和它在什么地方运行。现在我们在里面添加一行:

从此我们的应用就拥有了拨打电话的权限了,接下来就是建立一个IPhone类的对象,上次我已经介绍了必须要通过ServiceManager来获得,以下代码演示了如何建立一个IPhone类对象:

private static IPhone getPhoneInterface() throws DeadObjectException

{

IServiceManager sm = ServiceManagerNative.getDefault();

IPhone phoneService = IPhone.Stub.asInterface(sm.getService("phone"));

return phoneService;

}

一旦建立完了IPhone对象,即可使用call或者dail方法来拨电话了:

void call(String number)

void dial(String number)

它们之间的差别就是call是在后台进行的,一般用于数据传输(gprs,edge)的应用,而dial是会显示一个简单的拨号界面,上面预设了你的参数作为拨号的号码,如果给dial的参数传入NULL,则会调用拨号的界面显示出来。

Tags:Android RIL

编辑录入:coldstar [复制链接] [打 印]
赞助商链接