版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、昆明理工大學(xué)智能終端軟件設(shè)計(jì)及開發(fā)課程報(bào)告題 目: android系統(tǒng)來電防火墻APP之編碼與 軟件測試模塊設(shè)計(jì)與實(shí)現(xiàn) 學(xué) 院: 信息工程與自動化學(xué)院 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 姓 名: 李力 學(xué) 號: 201010803116 指導(dǎo)教師: 游進(jìn)國 日 期: 2013年12月28日目錄一、摘要3二、緒論32.1 ANDROID的系統(tǒng)介紹32.2 ANDROID平臺與其它平臺的比較42.3 設(shè)計(jì)目標(biāo)42.4 來電防火墻設(shè)計(jì)原則42.5 來電防火墻功能42.6 本文所做的主要工作6三、系統(tǒng)分析與設(shè)計(jì)63.1系統(tǒng)功能分析63.2創(chuàng)建數(shù)據(jù)庫文件73.3系統(tǒng)界面設(shè)計(jì)實(shí)現(xiàn)83.3.1 可視化控件設(shè)置83
2、.3.2布局83.4 Eclipse環(huán)境搭建93.4.1 開發(fā)環(huán)境搭建93.4.2 創(chuàng)建模擬器12四、程序界面與代碼實(shí)現(xiàn)134.1用戶界面134.2主程序模塊174.3 程序測試19五、結(jié)束語21一、摘要本設(shè)計(jì)是基于Android系統(tǒng)的智能手機(jī)來電防火墻,主要功能是過濾來電號碼。該系統(tǒng)包括來電攔截、攔截電話的添加和修改、攔截電話來電時的提示方式、攔截電話的回?fù)?。該來電防火墻總體上分三大模塊:用戶界面UI設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)和來電后搜索數(shù)據(jù)庫拒接。用戶界面UI的設(shè)計(jì)主要有兩種方法,一種是在XML文件中靜態(tài)設(shè)置,另一種是在Java代碼中動態(tài)設(shè)置,該設(shè)計(jì)主要用的是第一種方法。該設(shè)計(jì)的數(shù)據(jù)庫采用的是SQL
3、ite,SQLite是一款輕型的嵌入式數(shù)據(jù)庫,資源占有率非常的低。程序的代碼主要是以Java為主,結(jié)合Android自己特有的類來完成整體的設(shè)計(jì)。本系統(tǒng)作為手機(jī)來電處理的主要功能之一,它的設(shè)計(jì)直接影響到手機(jī)的性能和友好性,另外,Android是一個開放的操作系統(tǒng),它已被眾多的手機(jī)廠商采用。本手機(jī)來電防火墻主要是作為拒接電話設(shè)計(jì)的。通過黑名單的新增、修改和刪除,來對手機(jī)來電進(jìn)行管理。如果來電號碼不在黑名單中,則按照手機(jī)默認(rèn)的情景模式響應(yīng);如果來電號碼在黑名單中,則直接掛斷該電話,并且彈出一個對話框提示用戶:來電在黑名單中,已拒接!二、緒論2.1 ANDROID的系統(tǒng)介紹Android系統(tǒng)是Goo
4、gle公司推出的一款開放平臺,Android以linux2.6為內(nèi)核,系統(tǒng)穩(wěn)定安全,應(yīng)用程序使用Java語言來開發(fā),縮短了軟件開發(fā)周期,現(xiàn)在已經(jīng)被許多的手機(jī)廠商采用。Android是一個真正意義上的開放性移動設(shè)備綜合平臺,它包括操作系統(tǒng)、用戶界面、中間件和一些關(guān)鍵的平臺應(yīng)用,擁有移動電話工作所需的全部軟件。Android最大特點(diǎn)在于它是一個開放的體系結(jié)構(gòu),具有非常好的開發(fā)和調(diào)試環(huán)境,而且還支持各種可擴(kuò)展的用戶體驗(yàn),Android里面具有非常豐富的圖形系統(tǒng),提供對多媒體功能的支持和非常強(qiáng)大的瀏覽器。Android的主要特點(diǎn)體現(xiàn)在以下幾點(diǎn)2:(1)應(yīng)用程序架構(gòu):在應(yīng)用程序架構(gòu)內(nèi)已經(jīng)具備多種不同的基
5、礎(chǔ)組件,在開發(fā)應(yīng)用程序時,就可以直接調(diào)用這些組件來使用,可以節(jié)省開發(fā)應(yīng)用程序的心力及時間。(2)Dalvik虛擬機(jī)器:在Android平臺上所使用的Java虛擬機(jī),不是Sun公司的標(biāo)準(zhǔn)Java虛擬機(jī),而是使用Google自主開發(fā)的代號為Dalvik的虛擬機(jī),它在保證API方面的兼容性的同時,針對移動手機(jī)進(jìn)行了大幅度優(yōu)化,占用資源更小,運(yùn)行效率更高。(3)集成的瀏覽器:集成的瀏覽器是Android內(nèi)建的瀏覽器,是以WebKit的瀏覽引擎為基礎(chǔ)所開發(fā)的。WebKit是一個開源瀏覽器網(wǎng)頁排版引擎。配合Android手機(jī)的功能,可以在瀏覽網(wǎng)頁時,達(dá)到更好的效果。(4)優(yōu)化的繪圖能力:在程序里可以用到的
6、繪圖功能分為2D和3D兩個方面。在2D方面,Android提供了一套特有的類庫(SGL);而在3D方面則是使用OpenGLES1.0(OpenGL for Embedded Systems)規(guī)范的類庫。它們是一種非常快的圖形引擎,并且支持硬件加速。(5)SQLite數(shù)據(jù)庫:SQLite提供結(jié)構(gòu)化的數(shù)據(jù)存取。SQLite是一款輕型的數(shù)據(jù)庫,它的實(shí)際目標(biāo)是嵌入式,目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用的資源很低。它能夠支持Windows、linux、Unix等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如PHP,Java等,還有ODBC接口,同樣比起Mysql,PostgreSQL來講,它
7、的處理速度比它們都快。它無需安裝和管理配置,它是一個存儲在單一磁盤文件中的完整數(shù)據(jù)庫,占有空間只有250KB,但支持?jǐn)?shù)據(jù)大小最高達(dá)2TB。雖然很小巧,但是支持的SQL語句毫不遜色于其它開源數(shù)據(jù)庫。同時它還支持事務(wù)功能和并發(fā)處理等等。SQLite也是一套開放性的關(guān)聯(lián)式資料庫。其特點(diǎn)在于輕量性方面的設(shè)計(jì)結(jié)構(gòu),更適合在手機(jī)上使用。(6)多媒體的支持能力:主要用于播放媒體文件。這同時包括對音頻和視頻的支持,并支持“播放URI地址(即統(tǒng)一資源識別地址)”模式在網(wǎng)絡(luò)上直接播放的流媒體。另外支持各種通用的靜態(tài)圖像格式,例如:JPG、PNG、GIF等格式。(7)GSM技術(shù):Global System for
8、Mobile Communication,即全球移動通信系統(tǒng),是第二代移動通信技術(shù),其開發(fā)目的是讓全球各地可以使用一個移動電話網(wǎng)標(biāo)準(zhǔn),讓用戶使用一部手機(jī)就能行遍全球。GSM技術(shù)是屬于手機(jī)硬件方面的發(fā)展,也是在開發(fā)Android應(yīng)用程序時可以突出的特點(diǎn)之一。(8)藍(lán)牙、EDGE、3G和Wi-Fi:藍(lán)牙是一種新型、開放、低成本、短距離的無線連接技術(shù),可取代短距離的電纜,實(shí)現(xiàn)話音和數(shù)據(jù)的無線傳輸。EDGE是一種從GSM到3G的過渡技術(shù),它主要是在GSM系統(tǒng)中采用了一種新的調(diào)制解調(diào)方法,即最先進(jìn)的多時隙操作和SPSK調(diào)制技術(shù)。Wi-Fi(Wireless Fidelity),即無線保真技術(shù),與藍(lán)牙技術(shù)
9、一樣,同屬于在辦公室和家庭中使用的短距離無線技術(shù)。該技術(shù)使用的是2.4GHz附近的頻段,該頻段目前尚屬無須許可的無線頻段。其目前可使用的標(biāo)準(zhǔn)有兩個,分別是IEEE802.11a和IEEE802.nb。這些通訊能力也是屬于手機(jī)硬件方面的發(fā)展,也是在開發(fā)Android應(yīng)用程序時可以突出的特點(diǎn)之一。(9)豐富的開發(fā)環(huán)境:Android SDK提供了相當(dāng)完善的程序開發(fā)環(huán)境,其開發(fā)環(huán)境包括設(shè)備模擬器、調(diào)試工具、內(nèi)存和性能檢測等方面的評估功能,另外也提供可用于Eclipse IDE的開發(fā)插件界面。2.2 ANDROID平臺與其它平臺的比較首先看一下Symbian,它存在著以下的致命不足:Symbian的主
10、導(dǎo)者為諾基亞、索尼愛立信等傳統(tǒng)的手機(jī)廠商,因此雖然Symbian非常成熟,但是基本上還帶有濃厚的保守色彩,應(yīng)用軟件與我們?nèi)粘5腜C軟件有較大的理念差異。再者Symbian與互聯(lián)網(wǎng)的結(jié)合給人感覺仍不夠緊密,互聯(lián)網(wǎng)應(yīng)用更多只是作為陪襯存在。Android平臺與此相反,移動互聯(lián)網(wǎng)是它最重要的應(yīng)用,無論系統(tǒng)內(nèi)核、應(yīng)用軟件還是硬件設(shè)計(jì),幾乎都是圍繞著快捷的移動互聯(lián)網(wǎng)應(yīng)用所展開的,同時Android與PC平臺存在先天的基因聯(lián)系,可以很好的實(shí)現(xiàn)與PC設(shè)備的信息互享,更容易獲得用戶的廣泛認(rèn)可。與Android擁有相同屬性的還有微軟的Windows Mobile,然而臃腫的Windows平臺飽受垢病,真正喜歡它
11、的用戶并不多。至于iPhone,它只是蘋果公司的封閉平臺,用戶無法在iPhone中自行安裝應(yīng)用程序。所有的東西都應(yīng)該蘋果自己設(shè)計(jì)制造,從而確保利潤不被第三方分享。蘋果自己為iPhone開發(fā)了嵌入式系統(tǒng)以及完整的應(yīng)用,但它干脆都不宣揚(yáng)iPhone的軟件設(shè)計(jì),而是將iPhone作為一個包含軟硬件賣點(diǎn)的手機(jī)產(chǎn)品出售。同樣,蘋果式的奢華與時尚讓iPhone大獲成功,以至于成為手機(jī)市場的風(fēng)向標(biāo)。與蘋果相反,Android則是走完全開放的道路,這種模式的巨大優(yōu)點(diǎn)在PC軟件領(lǐng)域已為業(yè)界所公認(rèn)。自由軟件高度活躍,錯誤可以被快速修改,新的應(yīng)用和新的創(chuàng)意可以不斷出現(xiàn)。自由的屬性讓Android的錯誤可以快速的修正
12、,從而提高系統(tǒng)的可靠性與安全性。Android平臺的另外一個優(yōu)勢是標(biāo)準(zhǔn)化和跨平臺。作為開發(fā)平臺,可以為任何手機(jī)廠商自由選擇一廠商對代碼做出修改,那么修改的結(jié)果必須迅速返回,確保系統(tǒng)的統(tǒng)一性。其次,Android的應(yīng)用都基于Java開發(fā),Java具有一次編寫、到處運(yùn)行的跨平臺屬性,換句話說,開發(fā)者只要編寫一遍程序,就能夠?qū)崿F(xiàn)在所有Android設(shè)備中運(yùn)行,真正做到了硬件無關(guān)性,這顯然大幅度降低了開發(fā)者的負(fù)擔(dān)。再者,Android提供標(biāo)準(zhǔn)化的API和SDK開發(fā)包,手機(jī)廠商可以根據(jù)需要自行開發(fā)或收納已有的程序,從而打造出富有特色的Android平臺。這對手機(jī)廠商來說,它可以完全不管軟件技術(shù)之內(nèi)的問題
13、,快速整合出適合自己的一套平臺,然后將精力集中在硬件設(shè)計(jì)上面,可以在短時間內(nèi)快速推出新品,對開發(fā)者來說,標(biāo)準(zhǔn)化的Android絕對是令人愉快的選擇。Android和操作系統(tǒng)進(jìn)行了緊密地整合,從而可以方便地使用操作系統(tǒng)的功能。并且從圖形應(yīng)用界面的開發(fā)上來看,Android可以使用配置文件來描述圖形控件的布局,用Java代碼編寫實(shí)際響應(yīng)代碼,比用AWT/Swing編寫圖形應(yīng)用程序要方便得多。當(dāng)然由于Android已經(jīng)提供了大量現(xiàn)成的應(yīng)用API和應(yīng)用工具,使得常規(guī)智能手機(jī)功能的開發(fā)變得非常容易和簡單。2.3.設(shè)計(jì)目標(biāo)本手機(jī)來電防火墻是以拒接電話為主要的設(shè)計(jì)目標(biāo),通過黑名單的新增、修改和刪除,對手機(jī)來
14、電進(jìn)行管理。如果來電號碼不在黑名單中,則按照手機(jī)默認(rèn)的情景模式響應(yīng);如果來電號碼在黑名單中,則直接掛斷該電話,并且彈出一個對話框提示用戶:來電在黑名單中,已拒接。2.4 來電防火墻設(shè)計(jì)原則本系統(tǒng)在設(shè)計(jì)的時候要考慮的因素主要遵循以下幾條原則:(1)目的明確。一個好的程序必須有明確合理的、適用的目的。本程序的主要目的是實(shí)現(xiàn)對號碼的屏蔽。(2)功能實(shí)用。一個軟件所提供的功能應(yīng)該是切合實(shí)際需求的。本程序?qū)崿F(xiàn)的是在黑名單中的號碼來電后,直接將其掛掉,有很好的實(shí)用價(jià)值。 (3)界面簡單。軟件界面設(shè)計(jì)簡潔,美觀,人性化,滿足用戶的基本要求。 2.5 來電防火墻功能該來電防火墻總體上分三大模塊:用戶界面UI設(shè)
15、計(jì)、數(shù)據(jù)庫設(shè)計(jì)和主程序模塊。用戶界面UI的設(shè)計(jì)主要有兩種方法,一種是在XML文件中靜態(tài)設(shè)置,另一種是在Java代碼中動態(tài)設(shè)置,該設(shè)計(jì)主要用的是第一種方法。該設(shè)計(jì)的數(shù)據(jù)庫采用的是SQLite,SQLite是一款輕型的嵌入式數(shù)據(jù)庫,資源占有率非常的低。程序的代碼主要是以Java為主,結(jié)合Android自己特有的類來完成整體的設(shè)計(jì)。2.6 本文所做的主要工作本來電防火墻界面設(shè)計(jì)主要采用的是靜態(tài)的XML文件設(shè)置,后臺數(shù)據(jù)庫是用的SQLite,通過用戶UI與數(shù)據(jù)庫連接將前后臺連接起來,本文主要做了以下工作:第一章緒論對Android平臺進(jìn)行簡單介紹,描述了Android的發(fā)展、前景和優(yōu)勢,總體對Andr
16、oid的認(rèn)識。第二章主要介紹在本次程序開發(fā)中所使用的兩種技術(shù)XML、SQLite本為今后的程序設(shè)計(jì)工作做好鋪墊。第三章對數(shù)據(jù)庫和程序的設(shè)計(jì)進(jìn)行了介紹。第四章對程序的各個模塊進(jìn)行詳細(xì)介紹,并且對設(shè)計(jì)的調(diào)試和測試以及設(shè)計(jì)過程中出現(xiàn)的問題進(jìn)行了介紹。結(jié)束語是對這一段時間的設(shè)計(jì)進(jìn)行總結(jié),總結(jié)一下自己的經(jīng)驗(yàn)和教訓(xùn)。三、系統(tǒng)分析與設(shè)計(jì)本來電防火墻在Eclipse下編譯完成,并使用XML腳本語言結(jié)合Java代碼編寫整體程序,前臺界面設(shè)計(jì)采用的是XML靜態(tài)文件,并且在代碼中有相應(yīng)的動態(tài)設(shè)置,后臺數(shù)據(jù)庫采用了SQLite,并通過一系列的設(shè)計(jì)使來電防火墻逐步趨于完善。3.1系統(tǒng)功能分析本來電防火墻主要包括三個模塊
17、:用戶界面UI、數(shù)據(jù)庫模塊和主程序模塊。本手機(jī)來電防火墻主要是作為拒接電話設(shè)計(jì)的。通過黑名單的新增、修改和刪除,來對手機(jī)來電進(jìn)行管理。如果來電號碼不在黑名單中,則按照手機(jī)默認(rèn)的情景模式響應(yīng);如果來電號碼在黑名單中,則直接掛斷該電話,并且彈出一個對話框提示用戶:來電在黑名單中,已拒接。本手機(jī)來電防火墻的三個模塊如下圖3-1所示:來電防火墻號碼防騷擾數(shù)據(jù)接入用戶界面騷擾攔截分析號碼退出界面黑名單界面動態(tài)主界面圖3-1 來電防火墻系統(tǒng)結(jié)構(gòu)圖本手機(jī)來電防火墻開發(fā)的時候,我首先繪制的是所有用戶界面UI的整體框架圖,如3-2所示:黑名單新增幫助文本黑名單幫助退出修改刪除確定退出?確定取消圖3-2 整體框架
18、圖3.2創(chuàng)建數(shù)據(jù)庫文件本程序中,后臺數(shù)據(jù)庫用的SQLite數(shù)據(jù)庫,只用到了黑名單這一個表格。黑名單主要是用來保存拒接號碼的。包括編號、號碼簡介兩個字段。其中_id(編號)設(shè)定為主鍵,number(號碼)是必要字段,編碼是自動獲取,從1開始以整數(shù)上升。黑名單表結(jié)構(gòu)如表3-1所示:表3-1 用戶注冊表字段數(shù)據(jù)類型長度允許空_id整型1否number整型4否3.3系統(tǒng)界面設(shè)計(jì)實(shí)現(xiàn)本程序的用戶界面設(shè)計(jì)采用的是XML文件,涉及到主界面,黑名單界面等實(shí)現(xiàn)。3.3.1 可視化控件設(shè)置可視化控件4是直接與用戶交互的對象。Android除了支持自定義控件以外,自身也提供了非常豐富的各種可視化控件。這些控件大都已
19、經(jīng)完整地實(shí)現(xiàn)其功能,所以一般情況下開發(fā)人員只需要設(shè)置它們的屬性,就可以定義一個可交互的用戶界面控件了。設(shè)置控件屬性的方法有兩種:一種是在XML文件中靜態(tài)設(shè)置,另一種則是在Java代碼中動態(tài)設(shè)置。要創(chuàng)建用戶界面,首先我們必須了解的是View類。View類是可視化控件的基類,它主要提供了控件繪制和事件處理的方法。而可視化控件,是指重新實(shí)現(xiàn)了View的繪制和事件處理方法并且最終與用戶交互對象,如文本顯示、按鈕等。ViewGroup類也是繼承自View類,其最大的特點(diǎn)是可以有子控件。子控件是View類的對象,當(dāng)然也可以是ViewGroup類的對象,即ViewGroup可以嵌套。實(shí)際上,這是采用了設(shè)計(jì)模
20、式中的Composite模式,系統(tǒng)把對象以樹形結(jié)構(gòu)組織起來,從而達(dá)到了“部分整體”的層次結(jié)構(gòu),使得客戶端對單個對象和組合對象的使用具有一致性。在Android中除了想Listview這種需要有子控件的控件類繼承自ViewGroup以外,還有Layout類也同樣繼承自ViewGroup。需要說明的是,布局默認(rèn)情況下并不直接顯示給用戶,其主要功能在于控制子控件在屏幕上擺放的位置。所以通??梢姷腁ndroid程序都是可視化控件和布局組成的。3.3.2布局當(dāng)我們手握著一些已經(jīng)被設(shè)置好了的控件的時候,就該思考怎樣按照你的設(shè)計(jì)把他們放在Android設(shè)備的屏幕上了。Layout就是負(fù)責(zé)管理控件在屏幕的位置
21、的類。Android SDK 已經(jīng)內(nèi)置了幾種簡單的布局2模型,通過這幾種布局模型的組合、嵌套并設(shè)置子控件的布局參數(shù),我們完全可以構(gòu)建出各種復(fù)雜的用戶界面。1. 線性布局6線性布局應(yīng)該是應(yīng)用程序中最常用的布局方式,他提供了控件水平或者垂直排列的模型,同時我們可通過設(shè)置子控件的weight布局參數(shù)控制各個控件在布局中的相對大小。2. 表格布局表格布局模型以行列的形式管理子控件,每一行為一個TableRow的對象,也可為一個View的對象。TableRow可添加子控件,每添加一個子控件為一列。3. 相對布局相對布局的子控件會根據(jù)它們所設(shè)置的參照控件和參數(shù)進(jìn)行相對布局。參照控件可以是父控件,也可以是其
22、他子控件,但被參照的控件必須要在參照它的控件之前定義。4. 單幀布局單幀布局最簡單的布局模型,在這種布局下每個添加的子控件都被放在布局的左上角,并覆蓋在前一個控件的上層。5. 坐標(biāo)布局坐標(biāo)布局的子控件需要制定相對于此坐標(biāo)布局的橫、縱坐標(biāo)值,否則將會像FrameLayout那樣被排在左上角。手機(jī)應(yīng)用需要適用于不同的屏幕大小,而這樣布局模型不能自適應(yīng)屏幕尺寸大小,所以應(yīng)用的相當(dāng)少。3.4 Eclipse環(huán)境搭建數(shù)據(jù)庫的連接方式主要有兩種:ODBC連接和OLE DB連接。3.4.1 開發(fā)環(huán)境搭建1. 開始Eclipse3,然后選擇 Help > Software Updates > Fi
23、nd and Install,如圖3-3圖3-3 Find and Install2. 對話框出現(xiàn)后,選擇 Search for new features to install 點(diǎn)擊 Next。如圖3-4圖3-4 Search for new features to install3. 點(diǎn)擊New Remote Site。如圖3-5圖3-5 New Remote Site4. 在對話框中,輸入遠(yuǎn)程站點(diǎn)的名字,輸入站點(diǎn)如下:https:/dl- 點(diǎn)擊Ok5. 你可以看到新的站點(diǎn)添加到搜索列表中(并檢查),點(diǎn)擊Finish。6. 在下面的搜索結(jié)果對話框,選擇復(fù)選框 Android Plugin &
24、gt; Developer Tools。 它將會檢查特性: "Android Developer Tools"和"Android Editors"。 Android 編輯器的特性是可選的,但我們推薦安裝它,如果你選擇安裝,需要前面提到的WST插件,點(diǎn)擊 Next。如圖3-6:圖3-6 搜索結(jié)果對話框7. 閱讀許可協(xié)議,然后選擇接受許可協(xié)議,點(diǎn)擊 Next。8. 點(diǎn)擊 Finish。9. ADT插件沒有簽名,你可以點(diǎn)擊“Install All“來安裝所有東西。10. 重啟 Eclipse。3.4.2 創(chuàng)建模擬器1打開EclipsewindowsAndroi
25、d SDK and AVD Manager4。如圖3-7:圖3-7 創(chuàng)建模擬器從 “Android SDK and AVD Manager”窗口的左側(cè)選擇 “Virtual Devices”。1)選擇 “New”。2)輸入一個AVD 名稱。3)選擇一個 Target。4)輸入模擬的 SD Card 的容量大小。5)選擇一個外觀皮膚 Skin。1. 讓模擬器外觀大小像 G1,MyTouch 3G,Hero,等手機(jī)設(shè)備。保留默認(rèn)的skin設(shè)置值。2. 模擬 Motorola Droid。選擇 WVGA 854。3. 模擬其他的設(shè)備。選擇列表內(nèi)其他的選項(xiàng)。6)然后 “Create AVD”。四、程序
26、界面與代碼實(shí)現(xiàn)4.1用戶界面(1)該模塊主要是各個用戶界面的。程序主界面如4-1所示:圖4-1主程序界面該界面通過mian.xml文件來靜態(tài)的實(shí)現(xiàn),mian.xml代碼如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height=&qu
27、ot;fill_parent" android:gravity="center" ><Buttonandroid:id="+id/button1_id" android:layout_width="280dip" android:layout_height="wrap_content" android:text="string/button1" android:gravity="center" /> <Buttonandroid:id=&qu
28、ot;+id/button3_id" android:layout_width="280dip" android:layout_height="wrap_content" android:text="string/button3" android:gravity="center" /> <Buttonandroid:id="+id/button4_id" android:layout_width="280dip" android:layout_heigh
29、t="wrap_content" android:text="string/button4" android:gravity="center"/></LinearLayout>(2)點(diǎn)擊黑名單后,會打開黑名單界面 黑名單界面如圖4-2所示:圖4-2 黑名單界面該界面主要相關(guān)java代碼如下:public class blacklist extends Activity private blackToDoDB myToDoDB; private Cursor myCursor; private ListView myL
30、istView; private EditText myEditText; private int _id; String pnumber; protected final static int MENU_ADD = Menu.FIRST; protected final static int MENU_EDIT = Menu.FIRST + 1; protected final static int MENU_DELETE = Menu.FIRST + 2; Override myListView = (ListView) this.findViewById(R.id.myListView)
31、; myEditText = (EditText) this.findViewById(R.id.myEditText); myToDoDB = new blackToDoDB(this); /* 取得DataBase里的數(shù)據(jù) */ myCursor = myToDoDB.select(); int ccount=myCursor.getCount(); pnumber=new Stringccount; for(int i=0;i<ccount;i+) myCursor.moveToPosition(i); pnumberi=myCursor.getString(1); /* new
32、SimpleCursorAdapter并將myCursor傳入, 顯示數(shù)據(jù)的字段為todo_text */ SimpleCursorAdapter adapter = new SimpleCursorAdapter (this, R.layout.list, myCursor, new String blackToDoDB.FIELD_TEXT , new int R.id.listTextView1 ); myListView.setOnItemSelectedListener (new AdapterView.OnItemSelectedListener() Override public
33、 void onItemSelected (AdapterView<?> arg0, View arg1, int arg2, long arg3) /* getSelectedItem所取得的是SQLiteCursor */ SQLiteCursor sc = (SQLiteCursor) arg0.getSelectedItem(); _id = sc.getInt(0); myEditText.setText(sc.getString(1); Override public void onNothingSelected(AdapterView<?> arg0) )
34、; private void addTodo() if (myEditText.getText().toString().equals("") return ;if( judge(myEditText.getText().toString(),pnumber) Toast.makeText(getApplicationContext(), "該號碼已經(jīng)存在!" , Toast.LENGTH_SHORT).show(); /* 添加數(shù)據(jù)到數(shù)據(jù)庫 */ else myToDoDB.insert(myEditText.getText().toString();
35、 /* 重新查詢 */ myCursor.requery(); /* 重新整理myListView */ myListView.invalidateViews(); myEditText.setText(""); _id = 0; private void deleteTodo() if (_id = 0) return; new AlertDialog.Builder(blacklist.this) /*彈出窗口的最上頭文字*/ .setTitle(R.string.deltiltei) /*設(shè)置彈出窗口的圖式*/ / .setIcon(R.drawable.hot) /
36、*設(shè)置彈出窗口的信息*/ .setMessage(R.string.del_msg) .setPositiveButton(R.string.close_ok, new DialogInterface.OnClickListener() public void onClick (DialogInterface dialoginterface, int i) /* 刪除數(shù)據(jù) */ myToDoDB.delete(_id); myCursor.requery(); myListView.invalidateViews(); myEditText.setText(""); _id
37、 = 0; ).setNegativeButton(R.string.close_no, new DialogInterface.OnClickListener() /*設(shè)置跳出窗口的返回事件*/ public void onClick(DialogInterface dialoginterface, int i) ).show(); 4.2主程序模塊主程序模塊包括了各個界面的切換操作,來電后把來電號碼與黑名單中的數(shù)據(jù)進(jìn)行比較、判斷的代碼。攔截后的記錄界面如圖4-6所示圖4-6 攔截后的記錄界面來電后,手機(jī)自動判斷來電號碼是否在數(shù)據(jù)庫中,如果存在則掛斷電話。主要代碼如下:public void
38、 onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); /Intent intent=new Intent(this,Firewall1.class); /sendBroadcast(intent); /使用數(shù)據(jù)庫 blackToDoDB resolver = new blackToDoDB(this); Cursor cur=resolver.select(); int ccount=cur.getCount(); pnumber=new S
39、tringccount; for(int i=0;i<ccount;i+) cur.moveToPosition(i); pnumberi=cur.getString(1); if (audioManager != null) /*設(shè)置手機(jī)為待機(jī)時,響鈴為正常*/ audioManager.setRingerMode(AudioManager. RINGER_MODE_NORMAL); audioManager.getStreamVolume( AudioManager.STREAM_RING); catch(Exception e) / mTextView01.setText(e.toString(); e.printStackTrace(); break; /*取得手機(jī)狀態(tài)是通話中*/ case TelephonyManager.CALL_STATE_OFFHOOK: / mTextView01.setText(R.string.str_CALL_STATE_OFF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字電視安裝質(zhì)量保證協(xié)議
- 2024專業(yè)版商業(yè)合作合同書
- 房屋建筑工程清包合同格式
- 集資房指標(biāo)轉(zhuǎn)讓協(xié)議書
- 婚前購房協(xié)議書范本
- 技術(shù)合作三方協(xié)議
- 國際快遞服務(wù)協(xié)議范本
- 2024年購車借款協(xié)議書范本
- 股權(quán)分紅協(xié)議書模板
- 二手購房合同協(xié)議范本
- 坐標(biāo)紙(網(wǎng)格型坐標(biāo)紙-直接打印即可)
- 占比分析類PPT模板
- GB/T 21633-2020摻混肥料(BB肥)
- GB/T 21435-2008相變加熱爐
- 河南省洛陽市《綜合能力測試》事業(yè)單位國考真題
- 智慧消防整體解決方案消防大數(shù)據(jù)一體化管理平臺解課件
- 《推窗風(fēng)來》中考語文作文優(yōu)秀6篇
- 腹部血管疾病的超聲診斷課件整理
- 《客源國概論》期末考試題
- 公司吸煙管理規(guī)定范文
- 《江蘇省建筑業(yè)10項(xiàng)新技術(shù)(2021)》
評論
0/150
提交評論