編輯:Android開發實例
在 Android 上實現電話與短信服務相信己經是老生常談了,有些人或許認為沒有必要拿出來談,網上一抓一大把。確實是,網上現在有很多調用 Android 電話與短信服務的例子,今天特地拿出來談,只是因為有一些小技巧還是有拿出來談的必要的。
什麽是Intent
使用 Intent之前我們有必要先認識一下 Intent。
Intent是一種運行時綁定(runtime binding)機制,它能在程序運行的過程中連接兩個不同的組件。通過Intent,你的程序可以向 Android 表達某種請求或者意願,Android 會根據意願的內容選擇適合的組件來請求。比如本例中使用的打電話功能,那麼這個Acitivity只需要發出 Intent.ACTION_CALL 請求給Android ,剩下只要交給Android 來處理即可。
Intent的主要組成部份
Intent對象抽象地描述了要執行的操作,其描述的基本內容可以分為組件名稱、Action(動作)、Data(數據)、Category(類別)、Extra(附加信息)和Flag(標誌位)6部份,具體的使用功能可查看相關文檔,這裡不多介紹。
解析 Intent
Intent是一種在不同組件之間傳遞的請求消息,是應用程序發出的請求和意圖。作為一個完整的消息傳遞機制, Intent 不僅需要發送端,還需要接收端。那麼Intent如何解析 Intent 的請求內容,並選擇合適的組件響應 Intent 請求呢?本篇就會告訴大家,請繼續往下看。
用Intent激活程序---電話與短信
本篇中使用的 Intent 打電話程序中,Intent 的行為是 ACTION_DIAL,同時在 Intent 中傳遞被呼叫人的電話號碼。
撥打電話的關鍵有兩個方面,首先,要在 AndroidManifest 中添加 uses-permission(即為程序分配使用權限),並聲明android:name="android.permission.CALL_PHONE" 權限。由於打電話是屬於手機的底層服務,與用戶隱私及通話費用等話題息息相關,困此,程序必須取得權限。其次,通過自定義 Intent 對象,帶入“ACTION_CALL” 這個關鍵(Action),以及通過Uri.parse()的方法將用戶輸入電話號碼(Data)帶入,最後以 startActivity()方法,即可完成,代碼如下:
運行效果:
短信也是任何一款手機不可或缺的應用之一,幾乎是手機使用頻率最高的應用之一(不發短信的飄過~~~~~~)。Android自帶有一個發短信的類 SmsManager,利用這個類,我們可以完成手機的短信發送與接收工作,其中 sentTextMessage() 方法需要傳入五個值,依次是收件人地址(String)、發送人地址(String)、正文(String)、發送服務(PendingIntent)、與送達服務(PendingIntent),其中收件人與正文是不可為NULL的參數。跟打電話一樣,涉及到與金錢有關的必須在配置文件分配權限,權限代碼如下:<uses-permission android:name="android.permission.SEND_SMS"/>,smsManager的公開方法如下:
簡單的發送短信代碼:
package com.terry;
關於一個測試的小技巧:發送短信的時候我們需要兩台機子可以測試,這時候我們要同時啟動兩個模擬器己達到發送與接收的效果,這時候你可以如下操作:開始 --cmd--emulator -data foo 依此在 dos 命令中輸入,即可重新打開一個模擬器,下麵是收送測試效果圖:
疑問:
不知道有沒有細心的朋友發現。好像Google API 中不建議使用 smsManager 這個類來發送短信,如果是不建議那是否有另外的替代方案?如果知道的園友不妨告知一聲。。非常感激。
源碼下載:/Files/TerryBlog/phoneAndsms.rar
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個
概述 有圖有真相,所以先上圖: 上圖是從Android官網截下的Activity的生命周期流程圖,結構非常清晰,它描述了Activity在其生命周期中所有可能發
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個