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

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

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

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

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

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

 

從此我們的應(yīng)用就擁有了撥打電話的權(quán)限了,接下來(lái)就是建立一個(gè)IPhone類的對(duì)象,上次我已經(jīng)介紹了必須要通過(guò)ServiceManager來(lái)獲得,以下代碼演示了如何建立一個(gè)IPhone類對(duì)象:

private static IPhone getPhoneInterface() throws DeadObjectException
{
IServiceManager sm
= ServiceManagerNative.getDefault();
IPhone phoneService
= IPhone.Stub.asInterface(sm.getService("phone"));
return phoneService;
}

  一旦建立完了IPhone對(duì)象,即可使用call或者dail方法來(lái)?yè)茈娫捔?

void call(String number)
void dial(String number)

  

它們之間的差別就是call是在后臺(tái)進(jìn)行的,一般用于數(shù)據(jù)傳輸(gprs,edge)的應(yīng)用,而dial是會(huì)顯示一個(gè)簡(jiǎn)單的撥號(hào)界面,上面預(yù)設(shè)了你的參數(shù)作為撥號(hào)的號(hào)碼,如果給dial的參數(shù)傳入NULL,則會(huì)調(diào)用撥號(hào)的界面顯示出來(lái)。

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

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

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

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

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

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

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

【編輯推薦】

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

2017-02-24 10:02:04

AndroidMVVM應(yīng)用框架

2009-03-24 08:33:14

AndroidGoogle移動(dòng)os

2015-10-22 10:48:47

Android四大組件攔截

2010-01-25 16:58:53

Android組件交互

2010-01-28 10:55:14

Android電源管理

2010-01-25 13:50:41

Android輸出Lo

2010-01-27 15:29:25

Android屏幕大小

2010-02-04 10:17:38

Android應(yīng)用程序

2017-03-02 11:10:39

AndroidMVVM應(yīng)用程序

2010-01-26 15:08:11

Android根文件系

2010-01-25 18:27:54

Android進(jìn)度條

2010-01-06 15:18:51

Json插件

2017-02-27 09:36:01

AndroidMVVM架構(gòu)

2019-08-16 02:00:46

AndroidGoogle 移動(dòng)系統(tǒng)

2010-03-11 16:50:27

Python應(yīng)用

2011-06-07 09:15:35

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

2009-03-23 09:03:00

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

2014-07-10 15:51:53

2010-07-14 17:26:36

SOAP協(xié)議

2017-01-06 10:54:03

AndroidiOSJenkins
點(diǎn)贊
收藏

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