
華聯(lián)學(xué)院《android軟件開(kāi)發(fā)》課件08豐富你的程序運(yùn)用手機(jī)多媒體
12頁(yè)第八章豐富你的程序,運(yùn)用手機(jī)多媒體Android軟件開(kāi)發(fā)主講:王海使用通知通知(Notification)是Android系統(tǒng)中比較有特色的一個(gè)功能,當(dāng)某個(gè)應(yīng)用程序希望向用戶發(fā)出一些提示信息,而該應(yīng)用程序又不在前臺(tái)運(yùn)行時(shí),就可以借助通知來(lái)實(shí)現(xiàn)發(fā)出一條通知后,手機(jī)最上方的狀態(tài)欄中會(huì)顯示一個(gè)通知的圖標(biāo),下拉狀態(tài)欄后可以看到通知的詳細(xì)內(nèi)容Android的通知功能獲得了大量用戶的認(rèn)可和喜愛(ài),就連iOS系統(tǒng)也在5.0版本之后加入了類似的功能Android軟件開(kāi)發(fā)主講:王海通知的基本用法創(chuàng)建通知的步驟:(1)需要一個(gè)NotificationManager來(lái)對(duì)通知進(jìn)行管理,獲取NotificationManager的實(shí)例就可以寫成: NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);(2)創(chuàng)建一個(gè)Notification對(duì)象: Notification notification = new Notification(R.drawable.icon, This is ticker text,System.currentTimeMillis();(3)對(duì)通知的布局進(jìn)行設(shè)定: notification.setLatestEventInfo(context, This is content title, This is content text, null);Android軟件開(kāi)發(fā)主講:王海通知的高級(jí)技巧sound屬性:可以在通知發(fā)出的時(shí)候播放一段音頻,sound屬性是一個(gè)Uri對(duì)象,所以在指定音頻文件的時(shí)候還需要先獲取到音頻文件對(duì)應(yīng)的URI。
Vibrate屬性:在通知到來(lái)的時(shí)候讓手機(jī)進(jìn)行振動(dòng),使用的是vibrate這個(gè)屬性ledARGB、ledOnMS、ledOffMS和flags屬性:實(shí)現(xiàn)控制手機(jī)LED燈的顯示Android軟件開(kāi)發(fā)主講:王海接收和發(fā)送短信(1)接收短信 使用廣播機(jī)制,當(dāng)手機(jī)接收到一條短信的時(shí)候,系統(tǒng)會(huì)發(fā)出一條值為android.provider.Telephony.SMS_RECEIVED的廣播,這條廣播里攜帶著與短信相關(guān)的所有數(shù)據(jù)每個(gè)應(yīng)用程序都可以在廣播接收器里對(duì)它進(jìn)行監(jiān)聽(tīng),收到廣播時(shí)再?gòu)闹薪馕龀龆绦诺膬?nèi)容即可2)攔截短信 有序廣播的傳遞是可以截?cái)嗟?,而系統(tǒng)發(fā)出的短信廣播正是一條有序廣播,提高M(jìn)essageReceiver的優(yōu)先級(jí),讓它能夠先于系統(tǒng)短信程序接收到短信廣播,在onReceive()方法中調(diào)用abortBroadcast()方法,中止掉廣播的繼續(xù)傳遞Android軟件開(kāi)發(fā)主講:王海接收和發(fā)送短信(二)(3)發(fā)送短信 發(fā)送短信需要聲明權(quán)限Android軟件開(kāi)發(fā)主講:王海調(diào)用攝像頭和相冊(cè)(1)將程序運(yùn)行到手機(jī)上我們需要先通過(guò)數(shù)據(jù)線把手機(jī)連接到電腦上然后進(jìn)入到設(shè)置開(kāi)發(fā)者選項(xiàng)界面,并在這個(gè)界面中勾選中USB調(diào)試選項(xiàng),如圖8.9所示。
注意從Android 4.2版本開(kāi)始,系統(tǒng)默認(rèn)是把開(kāi)發(fā)者選項(xiàng)隱藏掉的,你需要先進(jìn)入到關(guān)于手機(jī)界面,然后對(duì)著最下面的版本號(hào)那一欄連擊四次,就會(huì)讓開(kāi)發(fā)者選項(xiàng)顯示出來(lái)Android軟件開(kāi)發(fā)主講:王海調(diào)用攝像頭和相冊(cè)(2)調(diào)用攝像頭拍照Android軟件開(kāi)發(fā)主講:王海調(diào)用攝像頭和相冊(cè)(3)從相冊(cè)中選擇照片 在ChoosePicTest項(xiàng)目的基礎(chǔ)上進(jìn)行修改,首先編輯activity_main.xml文件,在布局中添加一個(gè)按鈕用于從相冊(cè)中選擇照片注意:在調(diào)用startActivityForResult()方法的時(shí)候,我們給第二個(gè)參數(shù)傳入的值仍然是CROP_PHOTO常量,這樣的好處就是從相冊(cè)選擇好照片之后,會(huì)直接進(jìn)入到CROP_PHOTO的case下將圖片顯示出來(lái),這樣就可以復(fù)用之前寫好的顯示圖片的邏輯,不用再編寫一遍了Android軟件開(kāi)發(fā)主講:王海播放多媒體文件(1)播放音頻方法名方法名功能描述功能描述setDataSource()設(shè)置要播放的音頻文件的位置prepare()在開(kāi)始播放之前調(diào)用這個(gè)方法完成準(zhǔn)備工作start()開(kāi)始或繼續(xù)播放音頻pause()暫停播放音頻reset()將MediaPlayer對(duì)象重置到剛剛創(chuàng)建的狀態(tài)。
seekTo()從指定的位置開(kāi)始播放音頻stop()停止播放音頻調(diào)用這個(gè)方法后的MediaPlayer對(duì)象無(wú)法再播放音頻release()釋放掉與MediaPlayer對(duì)象相關(guān)的資源isPlaying()判斷當(dāng)前MediaPlayer是否正在播放音頻getDuration()獲取載入的音頻文件的時(shí)長(zhǎng)Android軟件開(kāi)發(fā)主講:王海播放多媒體文件(2)播放視頻方法名方法名功能描述功能描述setVideoPath()設(shè)置要播放的視頻文件的位置start()開(kāi)始或繼續(xù)播放視頻pause()暫停播放視頻resume()將視頻重頭開(kāi)始播放seekTo()從指定的位置開(kāi)始播放視頻isPlaying()判斷當(dāng)前是否正在播放視頻getDuration()獲取載入的視頻文件的時(shí)長(zhǎng)Android軟件開(kāi)發(fā)主講:王海本章小結(jié)本章我們主要對(duì)Android系統(tǒng)中的各種多媒體技術(shù)進(jìn)行了學(xué)習(xí),其中包括通知的使用技巧、調(diào)用攝像頭拍照、從相冊(cè)中選取照片,以及播放音頻和視頻文件由于所涉及的多媒體技術(shù)在模擬器上很難看得到效果,因此本章中還特意講解了在Android手機(jī)上調(diào)試程序的方法此外,我們還學(xué)習(xí)了如何使用Android提供的API來(lái)接收、發(fā)送和攔截短信,這使得我們甚至可以編寫一個(gè)自己的短信程序來(lái)替換掉系統(tǒng)的短信程序。



![[精編]吳教人[]13號(hào)](/Images/s.gif)








