构建Android电话相关的应用
创始人
2024-03-24 07:10:17
0

上次介绍了一下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,则会调用拨号的界面显示出来。

还有一种简单的拨号方法,有仔细看Intent文档的人就会发现,对一个电话格式的网址(如href="tel+86)1234567890")发送出CALL_ACTION,就可以调用拨号程序对其进行拨号。这种方便的方法可以在开发我们的浏览器应用的时候,直接在浏览网页的时候正则匹配到电话号码,然后直接调用拨号程序对其拨号,很方便吧。

获取电话的属性可以通过TelephonyProperties来实现,比如SIM卡,IMEI等信息,我们可以通过调用os.SystemProperties.put()方法传入TelephonyProperties的字段来设置对应的参数,也可以通过os.SystemProperties.get()方法获取这些参数,以下是一些实际引用的例子:

获取本机号码,调用android.os.SystemProperties.get(PROPERTY_LINE1_NUMBER);

获取IMEI,调用android.os.SystemProperties.get(PROPERTY_IMEI);

获取运营商名字,调用android.os.SystemProperties.get(PROPERTY_SIM_OPERATOR_ALPHA);

获取国家代码,调用android.os.SystemProperties.get(PROPERTY_SIM_OPERATOR_ISO_COUNTRY);

获取语音信箱号码,调用哪个android.os.SystemProperties.get(PROPERTY_LINE1_VOICE_MAIL_NUMBER);

【编辑推荐】

  1. 将企业软件移植到智能手机
  2. Palm将在CES上发布Nova操作系统智能手机
  3. Symbian每6个月发布一款新开源操作系统

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...