偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

構(gòu)建Android電話相關(guān)的應(yīng)用

系統(tǒng)
上次介紹了一下Android的RIL架構(gòu),我們可以把它理解為是GSM模塊的驅(qū)動,這次要介紹的是Telephony這個組件

上次介紹了一下Android的RIL架構(gòu),我們可以把它理解為是GSM模塊的驅(qū)動,這次要介紹的是Telephony這個組件,我們把它和WinCE做對比,發(fā)現(xiàn)它其實就是做了CellCore做的工作,只是CellCore依然很面向過程地單純導(dǎo)出SDK,然后讓上層驅(qū)動調(diào)用。Telephony由于是運行在我們的Dalvik虛擬機上面的,所以它的實現(xiàn)也就更面向?qū)ο蠡恕=酉聛碜屛覀兛纯丛趺词褂眠@個Telephony庫開發(fā)我們的電話應(yīng)用。

Telephony庫主要負責(zé)Android的撥打與接聽電話功能,其中有兩個重要的類分別是IPhone和PhoneNumberUtils是我們實現(xiàn)電話功能必不可少的。當(dāng)我們的應(yīng)用需要撥打一個號碼的時候,Android默認是沒有授予我們這個應(yīng)用的這個權(quán)限的,因此我們必須在AndroidManifest.xml中去打開這個權(quán)限。AndroidManifest.xml是每一個應(yīng)用都需要的文件,它位于應(yīng)用的根目錄下,文件里描述了程序包的全局變量,包括暴露的應(yīng)用組件(activities, services等等)和為每個組件的實現(xiàn)類,以及什么樣的數(shù)據(jù)可以操作和它在什么地方運行。現(xiàn)在我們在<manifest>里面添加一行:

<uses-permission id="android.permission.CALL_PHONE" />

 

從此我們的應(yīng)用就擁有了撥打電話的權(quán)限了,接下來就是建立一個IPhone類的對象,上次我已經(jīng)介紹了必須要通過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是在后臺進行的,一般用于數(shù)據(jù)傳輸(gprs,edge)的應(yīng)用,而dial是會顯示一個簡單的撥號界面,上面預(yù)設(shè)了你的參數(shù)作為撥號的號碼,如果給dial的參數(shù)傳入NULL,則會調(diào)用撥號的界面顯示出來。

還有一種簡單的撥號方法,有仔細看Intent文檔的人就會發(fā)現(xiàn),對一個電話格式的網(wǎng)址(如href="tel+86)1234567890")發(fā)送出CALL_ACTION,就可以調(diào)用撥號程序?qū)ζ溥M行撥號。這種方便的方法可以在開發(fā)我們的瀏覽器應(yīng)用的時候,直接在瀏覽網(wǎng)頁的時候正則匹配到電話號碼,然后直接調(diào)用撥號程序?qū)ζ鋼芴?,很方便吧?/P>

獲取電話的屬性可以通過TelephonyProperties來實現(xiàn),比如SIM卡,IMEI等信息,我們可以通過調(diào)用os.SystemProperties.put()方法傳入TelephonyProperties的字段來設(shè)置對應(yīng)的參數(shù),也可以通過os.SystemProperties.get()方法獲取這些參數(shù),以下是一些實際引用的例子:

獲取本機號碼,調(diào)用android.os.SystemProperties.get(PROPERTY_LINE1_NUMBER);

獲取IMEI,調(diào)用android.os.SystemProperties.get(PROPERTY_IMEI);

獲取運營商名字,調(diào)用android.os.SystemProperties.get(PROPERTY_SIM_OPERATOR_ALPHA);

獲取國家代碼,調(diào)用android.os.SystemProperties.get(PROPERTY_SIM_OPERATOR_ISO_COUNTRY);

獲取語音信箱號碼,調(diào)用哪個android.os.SystemProperties.get(PROPERTY_LINE1_VOICE_MAIL_NUMBER);

【編輯推薦】

  1. 將企業(yè)軟件移植到智能手機
  2. Palm將在CES上發(fā)布Nova操作系統(tǒng)智能手機
  3. Symbian每6個月發(fā)布一款新開源操作系統(tǒng)
責(zé)任編輯:龐桂玉 來源: IT168
相關(guān)推薦

2017-02-24 10:02:04

AndroidMVVM應(yīng)用框架

2015-10-22 10:48:47

Android四大組件攔截

2009-03-24 08:33:14

AndroidGoogle移動os

2010-01-25 13:50:41

Android輸出Lo

2010-01-25 16:58:53

Android組件交互

2010-01-28 10:55:14

Android電源管理

2010-02-04 10:17:38

Android應(yīng)用程序

2017-03-02 11:10:39

AndroidMVVM應(yīng)用程序

2010-01-27 15:29:25

Android屏幕大小

2010-01-06 15:18:51

Json插件

2017-02-27 09:36:01

AndroidMVVM架構(gòu)

2010-01-26 15:08:11

Android根文件系

2010-01-25 18:27:54

Android進度條

2019-08-16 02:00:46

AndroidGoogle 移動系統(tǒng)

2010-03-11 16:50:27

Python應(yīng)用

2011-06-07 09:15:35

參數(shù)設(shè)置屏幕UI設(shè)計

2014-07-09 09:20:06

WPFWPF應(yīng)用

2009-03-23 09:03:00

網(wǎng)絡(luò)電話方案應(yīng)用

2010-07-14 17:26:36

SOAP協(xié)議

2017-01-06 10:54:03

AndroidiOSJenkins
點贊
收藏

51CTO技術(shù)棧公眾號