版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于Android的短信管理應(yīng)用的設(shè)計(jì)與實(shí)現(xiàn)摘要:隨著即時(shí)通訊的發(fā)展,人們使用傳統(tǒng)的手機(jī)短信功能的次數(shù)越來越少。但傳統(tǒng)短信在一些特殊場(chǎng)景,如手機(jī)號(hào)身份驗(yàn)證、廣告短信推送、收發(fā)祝福、收取火車票通知等情況下依然有著廣泛的應(yīng)用。而如何針對(duì)這些特殊場(chǎng)景如何進(jìn)行管理功能上的優(yōu)化,并同時(shí)挖掘出短信數(shù)據(jù)內(nèi)容本身的一些價(jià)值,從而使短信的管理能發(fā)揮出更大的作用是一個(gè)值得研究的課題。本文將設(shè)計(jì)并實(shí)現(xiàn)一款基于Android操作系統(tǒng)的新型手機(jī)短信智能管理APP應(yīng)用。文章首先介紹了開發(fā)背景和目前短信軟件的發(fā)展情況,然后再重點(diǎn)對(duì)系統(tǒng)的需求進(jìn)行了分析,對(duì)系統(tǒng)的數(shù)據(jù)庫和模塊細(xì)節(jié)進(jìn)行了設(shè)計(jì)。同時(shí)對(duì)系統(tǒng)所使用到的關(guān)鍵技術(shù)進(jìn)行了說
2、明。最后通過系統(tǒng)截圖和測(cè)試數(shù)據(jù)對(duì)系統(tǒng)實(shí)現(xiàn)情況進(jìn)行了展示。該應(yīng)用在系統(tǒng)基本短信收發(fā)功能的基礎(chǔ)上,從用戶的短信使用習(xí)慣和生活中的實(shí)際需求出發(fā),針對(duì)群發(fā)的通知回復(fù)情況統(tǒng)計(jì)、短信日程通知管理、數(shù)據(jù)備份、與短信聯(lián)系的聯(lián)系人數(shù)據(jù)的導(dǎo)入、廣告短信顯示等在使用中會(huì)遇到的實(shí)際生活場(chǎng)景,提供了一套智能化的解決方案,為用戶提供一個(gè)更方便好用的管理軟件。系統(tǒng)整體采用CS架構(gòu),客戶端使用Android開發(fā)技術(shù)進(jìn)行開發(fā),服務(wù)端使用Java EE技術(shù)和tomcat進(jìn)行開發(fā)部署,數(shù)據(jù)庫為安卓系統(tǒng)原生SQLite數(shù)據(jù)庫與MySQL相結(jié)合。關(guān)鍵詞:安卓 短信 管理 生活場(chǎng)景Design and implementation of
3、 SMS management applications based on AndroidAbstract: With the development of instant communication, the number of people using traditional SMS function less and less. However, the traditional message in some special scenarios, such as phone number authentication, pushing advertising messages, send
4、ing and receiving blessings, receiving notification of the train and so on, still has a wide range of applications. And how to optimize the management for these special scenarios, and at the same time to mine some of the value of the message data itself, so that the message management can play a gre
5、ater role is a subject deserving of study.The paper will design and implement a new kind of app based on Android, which can help users manage sms more intelligently. Firstly, the article introduces the development background and development of the current messaging software, and then the requirement
6、s of the system are analyzed mainly. After that, the article designed the database and details of each module. At the same time, key technologies used in the system are described. Finally, screenshots of the system and test data are shown.Based on basic functions of sms, the application considers th
7、e users real-life needs and usage habbits, and provides a set of intelligent solutions and a user-friendly product for the users, which focused on some actual situations, such as counting replies to the notification, managing notificaitions of schedule from message, back-up of data, importing data o
8、f contacts related to sms ,display of sms advertisements and etc. The system is based on CS architecture .The client is developed in the Android platform, while the server-side implementation is completed with Java EE and the system uses tomcat for deployment. The used database is combination of And
9、roid native database SQLite and MySQL database.Keyword:Android SMS Management Usage scenarios緒論 開發(fā)背景自短信功能在手機(jī)通信業(yè)務(wù)上產(chǎn)生以來,便以其使用便捷的特點(diǎn)受到廣大用戶歡迎。而短信功能本身也經(jīng)歷了較大的發(fā)展。從簡(jiǎn)單的一對(duì)一文本收發(fā),到加入一對(duì)多群發(fā)的書寫與讀取,短信功能得到了進(jìn)一步的加強(qiáng)。但隨著智能手機(jī)系統(tǒng)的不斷普及,各種即時(shí)通訊軟件App如QQ,微信等社交工具以其友好的界面和免費(fèi)的使用模式,得到迅速流行和用戶喜愛。但基于現(xiàn)實(shí)世界中相互強(qiáng)關(guān)聯(lián)關(guān)系的通訊錄和短信業(yè)務(wù)在市場(chǎng)中仍然顯得非常重要。在我們
10、日常使用智能手機(jī)的短信功能時(shí),大量通知類信息,服務(wù)類信息充斥著我們的收件箱, 想要去查看群發(fā)短信回復(fù)情況,卻要花上十幾秒滑動(dòng)屏幕,所謂的智能化形同虛設(shè)。如何將其進(jìn)行一個(gè)更好的顯示和功能擴(kuò)展是一個(gè)問題。而對(duì)于生活場(chǎng)景中,如社團(tuán)活動(dòng)中常見的群發(fā)通知,工作開會(huì)時(shí)有時(shí)候不方便回短信等問題,也需有一個(gè)比較好的利用智能手機(jī)的特性去解決問題的方案。與即時(shí)通訊相比,短信存在資費(fèi)高的問題,用其作為溝通工具有著一定的成本。另外隨著手機(jī)用戶的不斷增長(zhǎng),特別是智能手機(jī)(Android)的大規(guī)模普及,用戶對(duì)手機(jī)使用的特點(diǎn),如操作便捷,交互人性化等方面有了更高的要求。 國內(nèi)發(fā)展現(xiàn)狀及趨勢(shì)目前國內(nèi)的短信管理產(chǎn)品主要以各大手
11、機(jī)廠商自己的系統(tǒng)短信應(yīng)用為主。其一般主要注重短信通信的基礎(chǔ)功能,對(duì)由短信擴(kuò)展出來的功能沒有太多重視。市場(chǎng)上也有多款不同的軟件供用戶選擇,差異主要體現(xiàn)在樣式上。軟件功能雖有些不同,但大同小異,且基于國內(nèi)實(shí)際生活場(chǎng)景進(jìn)行優(yōu)化的管理功能并沒有太多。但是隨著小米系統(tǒng)等新的帶有互聯(lián)網(wǎng)思維的系統(tǒng)出現(xiàn),短信產(chǎn)品也有著越來越多的創(chuàng)造性,如利用智能技術(shù)對(duì)聯(lián)系人稱謂進(jìn)行預(yù)處理等等,以方便用戶平常節(jié)假日祝福短信的發(fā)送。隨著自然語言處理和人工智能技術(shù)的不斷發(fā)展,軟件的發(fā)展趨勢(shì)都是變得更加智能化、生活化,通過對(duì)使用場(chǎng)景的分析做出定制優(yōu)化,通過對(duì)已產(chǎn)生數(shù)據(jù)的利用產(chǎn)生新的價(jià)值。而短信作為目前還沒有大范圍應(yīng)用智能化的軟件部分
12、,在之后的發(fā)展中應(yīng)該會(huì)變得越來越易用和智能。如利用數(shù)據(jù)挖掘技術(shù)對(duì)大量短信數(shù)據(jù)進(jìn)行處理,從而實(shí)現(xiàn)攔截垃圾短信和識(shí)別詐騙短信的功能。目前基本的短信軟件開發(fā)技術(shù)已比較成熟,Android系統(tǒng)版本已經(jīng)更新到6.0,而國內(nèi)的手機(jī)廠商也在不斷對(duì)Android系統(tǒng)進(jìn)行不斷的改造和優(yōu)化,目前成果豐碩,且國內(nèi)Android開發(fā)技術(shù)書籍和論壇也非常多,技術(shù)較為成熟。 系統(tǒng)特色介紹本文章將介紹的管理軟件以系統(tǒng)原生短信基本功能為基礎(chǔ),從目標(biāo)群體的短信使用情景出發(fā),利用網(wǎng)絡(luò)技術(shù)、文本匹配等技術(shù),針對(duì)用戶群發(fā)通知需要收費(fèi)、群發(fā)的回復(fù)情況查看復(fù)雜、無法進(jìn)行多選回復(fù)、通知類短信繁多導(dǎo)致管理不便、換手機(jī)后數(shù)據(jù)丟失等在短信使用中
13、會(huì)實(shí)際遇到的問題,為用戶提供一套智能化的解決方案。如在節(jié)日時(shí),用戶群體同樣也會(huì)收到來自親朋好友的大量的祝福短信。不回復(fù)會(huì)顯得不夠禮貌,但是如果像傳統(tǒng)的回復(fù)情況一樣逐條回復(fù),是一件費(fèi)時(shí)的事情。因此針對(duì)用戶回復(fù)某一特定情景下的短信時(shí)所回復(fù)內(nèi)容比較相似的情況,可以通過多選所要回復(fù)的短信,統(tǒng)一進(jìn)行回復(fù)。如用戶收到含有日期時(shí)間,地點(diǎn)內(nèi)容等的通知短信時(shí),可以一鍵直接將短信生成相應(yīng)日程提醒。系統(tǒng)將自動(dòng)調(diào)用日程軟件,并根據(jù)短信內(nèi)容中的日期直接定位到當(dāng)天,并將地點(diǎn)內(nèi)容等信息提取并填入所需要的日程信息中,用戶根據(jù)個(gè)人需要修改需要提前提醒的時(shí)間后,即會(huì)生成相應(yīng)的日程安排。學(xué)生社團(tuán)團(tuán)體等用戶群體,經(jīng)常需要通過短信去給
14、成員發(fā)送通知,而這一過程有著短信資費(fèi)昂貴和回復(fù)統(tǒng)計(jì)困難的問題。本系統(tǒng)支持通過賬號(hào)系統(tǒng)形成一個(gè)即時(shí)通訊應(yīng)用,對(duì)于在線的收件方可以通過網(wǎng)絡(luò)發(fā)送消息,不在線再使用短信通道。同時(shí)通過圖表的方式將回復(fù)情況進(jìn)行統(tǒng)計(jì)和展示。用戶在生活中常有更換手機(jī)或者手機(jī)遺失的情況,而手機(jī)更換后,原手機(jī)的數(shù)據(jù)就丟失了。針對(duì)這一問題,本系統(tǒng)支持通過賬號(hào)進(jìn)行手機(jī)聯(lián)系人和短信數(shù)據(jù)的云備份和恢復(fù)。開發(fā)環(huán)境硬件:PC機(jī)編譯器:Android Studio 1.5 和 MyEclipse Professional 2014數(shù)據(jù)庫:MySQL服務(wù)器:Tomcat8瀏覽器:Google Chrome版本管理工具:Git測(cè)試手機(jī):華為C88
15、15與華為榮耀4C 開發(fā)技術(shù)Android操作系統(tǒng)安卓是一款基于Linux開源的部署在移動(dòng)平臺(tái)上的操作系統(tǒng),普通開發(fā)者和手機(jī)廠商都可以按照一定的規(guī)則自由地對(duì)其進(jìn)行定制開發(fā)。同時(shí)Google提供了一整套的規(guī)范化的開發(fā)平臺(tái)和開發(fā)體系,方便開發(fā)者通過Google提供的系統(tǒng)API和系統(tǒng)機(jī)制開發(fā)出各種各樣的應(yīng)用軟件。1所以通過Android平臺(tái),我們可以對(duì)系統(tǒng)短信應(yīng)用進(jìn)行重新定制或者二次開發(fā),達(dá)到我們個(gè)性化需求開發(fā)的目的??拼笥嶏w開放語義API科大訊飛開放語義平臺(tái),是一套集語義解析、智能問答入于一體的技術(shù)接入平臺(tái),面向廣大開發(fā)者提供一站式語義解決方案。該平臺(tái)覆蓋多垂直領(lǐng)域的語義通用場(chǎng)景,支持Andrio
16、d、IOS等多種應(yīng)用平臺(tái),通過規(guī)范和多樣的API,滿足應(yīng)用的個(gè)性化定制需求。在本系統(tǒng)中就需要使用到該API,對(duì)用戶輸入的語音進(jìn)行語義解析,獲取解析結(jié)果后生成發(fā)短信任務(wù),從而實(shí)現(xiàn)語音發(fā)短信功能。極光推送IM SDK極光IM為App開發(fā)者提供易用可靠的即時(shí)通信云服務(wù),搭建應(yīng)用用戶間自由的交流通道,增強(qiáng)產(chǎn)品社會(huì)化屬性。極光 IM 提供單聊,群聊的方式。聊天內(nèi)容支持文本,圖片,語音以及自定義消息等多種格式。終端平臺(tái)覆蓋 Android,iOS 以及 Web 客戶端。極光IM以極光推送的大規(guī)模、高并發(fā)、穩(wěn)定的推送服務(wù)為技術(shù)基礎(chǔ);共享極光推送的多區(qū)域分布接入資源,采用一條連接同時(shí)維護(hù) JMessage 與
17、 JPush 兩個(gè)服務(wù)。而在本系統(tǒng)中就需要到該SDK,集成其即時(shí)通信的服務(wù),并構(gòu)建出一套用戶系統(tǒng),以此為基礎(chǔ)去實(shí)現(xiàn)類似WhatsApp的網(wǎng)絡(luò)消息與手機(jī)電信短信互相接合,無縫連接的效果。Java EE技術(shù)Java EE是sun公司推出的企業(yè)級(jí)應(yīng)用程序版本,在 Java SE 的基礎(chǔ)上構(gòu)建,提供Web 服務(wù)、組件模型、管理和通信 API。通過使用Java EE和相應(yīng)的JDBC等組件,我們能夠輕松并規(guī)范地開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端 Java應(yīng)用程序,比如可以用來開發(fā)基于Web 2.0的Java 網(wǎng)站和服務(wù)器端接口。2而本系統(tǒng)的服務(wù)端就是使用Java EE進(jìn)行編寫,既可以通過其編寫
18、Web頁面的交互,也可以用其編寫手機(jī)客戶端請(qǐng)求的處理后臺(tái)和數(shù)據(jù)庫交互的部分。 內(nèi)容安排本論文整體分為六個(gè)大章節(jié)。第一章為緒論,簡(jiǎn)要敘述了系統(tǒng)擁有的特色、發(fā)展現(xiàn)狀及趨勢(shì)、系統(tǒng)的開發(fā)背景,同時(shí)介紹了開發(fā)本系統(tǒng)所使用的開發(fā)平臺(tái)工具和使用的技術(shù)。第二章系統(tǒng)需求與分析,該章節(jié)對(duì)系統(tǒng)的需求以用例圖的方式進(jìn)行了闡述,并繪制了系統(tǒng)整體的業(yè)務(wù)流程圖,限定了系統(tǒng)非功能上的需求。第三章系統(tǒng)設(shè)計(jì),在簡(jiǎn)要介紹了系統(tǒng)設(shè)計(jì)的原則之外,對(duì)系統(tǒng)的功能架構(gòu)進(jìn)行了說明和劃分。之后文章解釋了所使用到的和與自主設(shè)計(jì)的數(shù)據(jù)庫,同時(shí)以UML泳道圖、UML活動(dòng)圖的方式設(shè)計(jì)了各個(gè)復(fù)雜功能的詳細(xì)交互流程。第四章系統(tǒng)關(guān)鍵技術(shù),本文介紹了在系統(tǒng)開發(fā)
19、過程中所使用到的有較高難度和設(shè)計(jì)思想的技術(shù),包括多線程下載、異步任務(wù)處理、跨應(yīng)用數(shù)據(jù)交互。第五章系統(tǒng)實(shí)現(xiàn)與測(cè)試,文章介紹了系統(tǒng)各功能的實(shí)現(xiàn)情況和部署過程,并對(duì)系統(tǒng)完成后的測(cè)試過程和測(cè)試結(jié)果進(jìn)行了說明。第六章結(jié)論與展望,該章節(jié)對(duì)畢業(yè)設(shè)計(jì)的整個(gè)過程做了總結(jié),并提出了不足的地方,同時(shí)也闡述了改進(jìn)方向。 系統(tǒng)需求與分析 系統(tǒng)總體需求總體需求概括來說就是在提供基本短信服務(wù)的同時(shí),再提供一些有特色的針對(duì)特定場(chǎng)景進(jìn)行優(yōu)化了的功能。短信基本的收發(fā)服務(wù)和基本操作系統(tǒng)需要能進(jìn)行基本的收取與查看短信、編輯和發(fā)送短信操作。另外系統(tǒng)需要支持對(duì)短信數(shù)據(jù)進(jìn)行刪除操作、轉(zhuǎn)發(fā)操作、復(fù)制操作等基本的處理操作??蛇M(jìn)行短信系統(tǒng)的相關(guān)
20、基本設(shè)置系統(tǒng)需要支持對(duì)短信相關(guān)功能的一些功能進(jìn)行開啟或關(guān)閉,并可以修改功能相應(yīng)的參數(shù)設(shè)置。服務(wù)和廣告類短信與普通用戶短信分隔顯示系統(tǒng)可以將來自網(wǎng)絡(luò)的服務(wù)類短信數(shù)據(jù)與日常普通的短信會(huì)話分隔開來,避免用戶受太多垃圾短信的干擾。針對(duì)特定類型的通知短信可以生成日程針對(duì)帶有時(shí)間通知信息的短信,系統(tǒng)可以支持一鍵生成一條日程,插入到手機(jī)系統(tǒng)的日歷中,作為提醒。需有數(shù)據(jù)備份及保障數(shù)據(jù)安全系統(tǒng)需要支持對(duì)短信和聯(lián)系人的數(shù)據(jù)進(jìn)行備份,將數(shù)據(jù)保存到遠(yuǎn)程服務(wù)器中,并可以通過賬號(hào)進(jìn)行恢復(fù)??赏ㄟ^不同的途徑生成發(fā)短信任務(wù)系統(tǒng)既可以通過傳統(tǒng)的文本編輯產(chǎn)生短信任務(wù),也可以通過說一句話的語音產(chǎn)生一個(gè)短信任務(wù)。可以對(duì)系統(tǒng)聯(lián)系人數(shù)據(jù)
21、進(jìn)行操作聯(lián)系人是短信數(shù)據(jù)的重要部分,兩者相輔相成。系統(tǒng)可以導(dǎo)入不同來源的聯(lián)系人,并支持將本地的聯(lián)系人數(shù)據(jù)通過二維碼進(jìn)行選擇和分享操作。3 系統(tǒng)整體流程系統(tǒng)整體的流程以用戶登錄為起點(diǎn)。用戶進(jìn)入主系統(tǒng)后,可以查看普通短信主列表,并通過主系統(tǒng)提供的各個(gè)入口,進(jìn)入到新建短信、系統(tǒng)設(shè)置、特色功能等二級(jí)模塊。通過列表入口,可以進(jìn)入到服務(wù)短信列表或者具體的會(huì)話模塊。而新建短信模塊分為文本編輯短信和語音發(fā)短信兩部分,在操作完成后也會(huì)回到會(huì)話模塊。而通過系統(tǒng)設(shè)置入口可以去完成系統(tǒng)功能的相關(guān)設(shè)置。通過特色功能入口,用戶可以使用備份與恢復(fù)、分享聯(lián)系人,下載Excel工作文件三個(gè)功能。整體流程圖見圖2.1。圖2.1系
22、統(tǒng)整體流程圖 用戶用例分析收短信模塊收短信模塊的用例主要分為五個(gè)模塊,通知欄、普通短信顯示、服務(wù)短信分類、群發(fā)通知回復(fù)自動(dòng)統(tǒng)計(jì)、驗(yàn)證碼懸浮框顯示。(見圖2.2)圖2.2收短信功能用例圖收到通知收到信息后,在通知欄會(huì)顯示相應(yīng)消息,內(nèi)容有信息發(fā)件人、短信內(nèi)容的前半部分和收到的時(shí)間,可以在通知欄里點(diǎn)擊消息直接進(jìn)入短信編輯頁面。查看普通短信列表以與用戶產(chǎn)生短信消息的號(hào)碼為單位形成列表,在列表項(xiàng)中需要有號(hào)碼(如果已有聯(lián)系人,則顯示姓名)、短信時(shí)間、短信首行內(nèi)容,并按與此聯(lián)系人的最新一條短信的時(shí)間對(duì)列表進(jìn)行排序。查看服務(wù)短信列表來自網(wǎng)絡(luò)服務(wù)號(hào)碼且未添加聯(lián)系人(如支付寶的通知等)的短信全部整合到一個(gè)列表項(xiàng)中
23、,并與其他列表項(xiàng)顯示上有所區(qū)分。查看回復(fù)自動(dòng)統(tǒng)計(jì)針對(duì)群發(fā)出去的通知短信,用戶可以選擇進(jìn)行統(tǒng)計(jì),自動(dòng)統(tǒng)計(jì)出有多少人已回復(fù),還有多少人未回復(fù),并使用餅圖圖表進(jìn)行展示。驗(yàn)證碼懸浮框顯示對(duì)于收到的驗(yàn)證碼一類的短信會(huì)在通知欄上停留更長(zhǎng)的時(shí)間,以便用戶編輯。發(fā)短信模塊發(fā)短信模塊的用例主要分為一對(duì)一發(fā)送、一對(duì)多發(fā)送、編輯草稿、使用自動(dòng)回復(fù)、語音發(fā)短信、群回短信。(見圖2.3)圖2.3發(fā)短信功能用例圖一對(duì)一發(fā)短信針對(duì)單一聯(lián)系人或者號(hào)碼編輯并發(fā)送短信。一對(duì)多短信收件人可以選擇多個(gè),并可以自主選擇是否自動(dòng)添加稱謂以及在短信的哪個(gè)地方添加稱謂。編輯草稿已選定聯(lián)系人,并編輯過內(nèi)容的短信如果沒有馬上發(fā)送,需要存為草稿。
24、自動(dòng)回復(fù)在設(shè)置自動(dòng)回復(fù)狀態(tài)后,收到有聯(lián)系人的短信時(shí),自動(dòng)給予其回復(fù),并且回復(fù)內(nèi)容可以被用戶自定義。語音發(fā)短信用戶可以通過語音新建一條短信,或者對(duì)收到的短信進(jìn)行回復(fù),支持單對(duì)單和單對(duì)多發(fā)送。群回短信在普通短信主列表中可以選擇多個(gè)聯(lián)系人列表項(xiàng),選擇群回功能進(jìn)入群發(fā)短信功能,并自動(dòng)把選擇的聯(lián)系人添加到收件人列表中。系統(tǒng)設(shè)置模塊系統(tǒng)設(shè)置模塊的用例分為通知欄設(shè)置、語音發(fā)短信設(shè)置、自動(dòng)回復(fù)設(shè)置。(見圖2.4)圖2.4系統(tǒng)設(shè)置功能用例圖是否在通知欄預(yù)覽信息通過設(shè)置可以控制在收到短信時(shí),是否需要在通知欄顯示相應(yīng)的消息。語音發(fā)短信設(shè)置用戶可以自主設(shè)置語音識(shí)別時(shí)間和語言參數(shù)。自動(dòng)回復(fù)設(shè)置是否開啟自動(dòng)回復(fù)以及要用于
25、回復(fù)的短語,系統(tǒng)中自帶一些常用的,也支持用戶自己添加新的。賬號(hào)相關(guān)模塊賬號(hào)相關(guān)的用例圖分為注冊(cè)、登錄、注銷、手機(jī)號(hào)身份驗(yàn)證四部分。(見圖2.5)圖2.5賬號(hào)相關(guān)功能用例圖注冊(cè)用戶可以通過手機(jī)號(hào)進(jìn)行注冊(cè),設(shè)置密碼,并進(jìn)行手機(jī)號(hào)驗(yàn)證。登錄用戶可以通過已注冊(cè)的手機(jī)號(hào)和密碼信息進(jìn)行登錄操作。注銷已登錄的用戶可以進(jìn)行注銷操作,取消登錄狀態(tài)。手機(jī)號(hào)身份驗(yàn)證用戶在注冊(cè)的時(shí)候需要通過獲取并輸入驗(yàn)證碼的方法進(jìn)行個(gè)人身份驗(yàn)證,以手機(jī)號(hào)作為身份標(biāo)識(shí)。云備份模塊數(shù)據(jù)云備份模塊的用例,分為聯(lián)系人云備份、聯(lián)系人數(shù)據(jù)恢復(fù)、短信云備份、短信數(shù)據(jù)恢復(fù)四個(gè)部分。(見圖2.6)圖2.6云備份功能用例圖聯(lián)系人云備份用戶可以將系統(tǒng)的聯(lián)
26、系人數(shù)據(jù)全部保存到服務(wù)器中,并與賬號(hào)綁定。聯(lián)系人數(shù)據(jù)恢復(fù)聯(lián)系人可以從遠(yuǎn)程服務(wù)器中將之前備份過的聯(lián)系人數(shù)據(jù)恢復(fù)到手機(jī)上。短信云備份用戶可以將系統(tǒng)的短信數(shù)據(jù)全部保存到服務(wù)器中,并與賬號(hào)綁定。短信數(shù)據(jù)恢復(fù)聯(lián)系人可以從遠(yuǎn)程服務(wù)器中將之前備份過的短信數(shù)據(jù)恢復(fù)到手機(jī)上。日程相關(guān)模塊日程的用例包括一鍵生成日程、查看日程列表、處理日程三個(gè)部分。(見圖2.7)圖2.7日程功能用例圖一鍵生成日程用戶可以對(duì)帶有日程信息的短信進(jìn)行操作,直接生成一個(gè)對(duì)應(yīng)的日程安排,保存到系統(tǒng)日歷應(yīng)用中。查看日程列表用戶可以查看自己生成的所有日程,日程以一個(gè)較友好的方式進(jìn)行展示,如日程類別,時(shí)間等等。處理日程用戶可以自主修改、刪除已有的
27、日程。聯(lián)系人分享模塊聯(lián)系人分享模塊的用例圖如下,包括生成二維碼、分享二維碼、掃描二維碼、導(dǎo)入聯(lián)系人四個(gè)部分。(見圖2.8)圖2.8聯(lián)系人分享功能用例圖生成二維碼用戶可以自主選擇要分享的聯(lián)系人,然后設(shè)置分享密碼,即可生成一個(gè)相應(yīng)的二維碼,二維碼中綁定了要分享的聯(lián)系人相應(yīng)的數(shù)據(jù)文件地址。分享二維碼用戶可以將生成的二維碼分享給其他用戶,比如QQ好友、微信朋友圈、微博等。掃描二維碼用戶可以通過使用App內(nèi)的掃描二維碼功能,掃描其他用戶分享給他的二維碼,識(shí)別出其包含的聯(lián)系人文件地址信息。導(dǎo)入聯(lián)系人在獲取地址信息之后,用戶可以選擇將對(duì)應(yīng)的聯(lián)系人進(jìn)行導(dǎo)入,保存到手機(jī)中。在線即時(shí)通訊模塊在線即時(shí)通訊的用例圖如
28、下,包括收消息、發(fā)消息、消息保存為短信三個(gè)部分。(見圖2.9)圖2.9在線通訊功能用例圖發(fā)消息如果對(duì)方也在使用同一個(gè)App,且在線,則通過網(wǎng)絡(luò)發(fā)送消息給對(duì)方,而不是通過移動(dòng)通信商。收消息如果用戶和發(fā)消息方同時(shí)在線,則用戶收到的消息是來自對(duì)方網(wǎng)絡(luò)發(fā)送的,而不是對(duì)方通過移動(dòng)通信商發(fā)送的短信。消息保存為短信無論是收到的網(wǎng)絡(luò)消息還是發(fā)出去的網(wǎng)絡(luò)消息,最后都保存到短信數(shù)據(jù)庫中,作為數(shù)據(jù)留存的方式。短信其他操作模塊短信其他操作的用例圖如下,包括復(fù)制、轉(zhuǎn)發(fā)、刪除三個(gè)部分。圖2.10短信其他操作功能用例圖短信刪除可以選擇一條或同時(shí)選擇多條短信數(shù)據(jù)進(jìn)行刪除操作。4復(fù)制可以針對(duì)某一條短信,進(jìn)行整條短信內(nèi)容復(fù)制或者
29、部分文本復(fù)制。轉(zhuǎn)發(fā)可以將某一條短信整條進(jìn)行轉(zhuǎn)發(fā)給其他聯(lián)系人或號(hào)碼,其中就包含了之前所分析的文本發(fā)短信用例。 非功能需求性能需求:各功能的響應(yīng)與處理時(shí)間需要控制在一定范圍內(nèi),且針對(duì)較低配置的手機(jī)也能夠做到使用流暢。穩(wěn)定性需求:用戶在使用本系統(tǒng)的過程中,系統(tǒng)需要保持較好的穩(wěn)定性,穩(wěn)定率在99%以上。安全性需求:用戶在使用本系統(tǒng)的時(shí)候,需要保證用戶數(shù)據(jù)的完整性、保密性。兼容性需求:本系統(tǒng)需要兼容Android 4.2到6.0原生系統(tǒng)與主流手機(jī)廠商的定制系統(tǒng)。易用性需求:系統(tǒng)設(shè)計(jì)需符合移動(dòng)應(yīng)用開發(fā)設(shè)計(jì)規(guī)范,保證用戶使用起來沒有疑惑,操作順暢。系統(tǒng)設(shè)計(jì) 系統(tǒng)設(shè)計(jì)原則針對(duì)該系統(tǒng),在項(xiàng)目設(shè)計(jì)過程中考慮了易用
30、性、可維護(hù)性和可擴(kuò)展性、可修改性這幾個(gè)原則。5易用性該系統(tǒng)面對(duì)的用戶是安卓原生短信應(yīng)用提供的服務(wù)不夠滿意的群體,所以要想讓用戶使用系統(tǒng)的時(shí)候感到好用,必須在系統(tǒng)設(shè)計(jì)時(shí)考慮系統(tǒng)的易用性。系統(tǒng)應(yīng)建立使用友好、簡(jiǎn)潔明快的用戶界面,在操作方面更簡(jiǎn)單、直觀、易于理解。6具體可表現(xiàn)為:系統(tǒng)中的交互設(shè)計(jì)需符合Android開發(fā)Material Design規(guī)范,配色統(tǒng)一,交互按鈕設(shè)置合理到位;系統(tǒng)使用的背景和貼圖與上下文語義匹配;系統(tǒng)功能流程節(jié)奏明了、不冗余;用戶易發(fā)現(xiàn)要使用的功能的入口。可維護(hù)性和可擴(kuò)展性整體系統(tǒng)上采用CS架構(gòu),把服務(wù)端與客戶端分開,各部分各司其職。而在客戶端的系統(tǒng)設(shè)計(jì)上需考慮開發(fā)中不斷迭
31、代加入的新功能和老功能的修改,所以架構(gòu)設(shè)計(jì)上采用傳統(tǒng)的MVC三層模式。該三層模式的合理使用,可以讓使數(shù)據(jù)層、控制層、表現(xiàn)層的代碼互相分開,便于控制。從而加強(qiáng)了系統(tǒng)的可維護(hù)性和可擴(kuò)展性。7 可修改性該系統(tǒng)的設(shè)計(jì)層次比較明確,各層次間有統(tǒng)一的易于理解的接口,便于開發(fā)人員的理解和后期修改。編碼過程中需有必要的注釋,函數(shù)名和變量名等直接明了,語義明確。同時(shí)函數(shù)編寫粒度大小適中,將一個(gè)大功能盡量分解為各個(gè)小的步驟函數(shù)以方便重構(gòu)操作。 功能模塊設(shè)計(jì)系統(tǒng)分為手機(jī)APP客戶端和網(wǎng)站服務(wù)端兩大部分。手機(jī)APP客戶端主要分為發(fā)短信模塊、收短信模塊、設(shè)置模塊、云備份模塊、賬號(hào)操作模塊、短信其他操作模塊、聯(lián)系人分享模
32、塊、日程管理模塊、在線即時(shí)通訊模塊。(見圖3.1)圖3.1 客戶端功能結(jié)構(gòu)圖網(wǎng)站端只是一個(gè)輔助使用的部分,所以較為簡(jiǎn)單,只分為賬號(hào)登錄模塊、Excel文件上傳模塊。 系統(tǒng)物理架構(gòu)設(shè)計(jì)系統(tǒng)總共涉及了手機(jī)APP、網(wǎng)頁端、自主服務(wù)器、極光推送服務(wù)器四部分。(見圖3.2)網(wǎng)頁端是用戶登錄和上傳EXCEL聯(lián)系人文件的平臺(tái),方便用戶在PC電腦上工作使用。手機(jī)APP是用戶平常產(chǎn)生大部分操作的地方,給予用戶包括短信收發(fā),數(shù)據(jù)分享,數(shù)據(jù)備份等主要的功能。極光推送服務(wù)器屬于第三方的服務(wù)器,通過接口調(diào)用,向該服務(wù)器發(fā)送請(qǐng)求,可以使用極光推送提供的通知推送和即時(shí)通訊功能。自主服務(wù)器是保存用戶數(shù)據(jù)和處理用戶請(qǐng)求的地方,
33、可以將用戶移動(dòng)端和網(wǎng)頁端產(chǎn)生的請(qǐng)求進(jìn)行集中處理,并保存進(jìn)數(shù)據(jù)庫。 圖3.2 系統(tǒng)物理架構(gòu)圖 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫的使用上,由于本系統(tǒng)部分是基于Android短信功能的二次開發(fā),且對(duì)系統(tǒng)聯(lián)系人有一定的操作,所以使用了安卓系統(tǒng)自帶的部分?jǐn)?shù)據(jù)庫。安卓數(shù)據(jù)庫類型是SQLite,為一個(gè)輕量級(jí)的數(shù)據(jù)庫,實(shí)現(xiàn)了基礎(chǔ)關(guān)系型數(shù)據(jù)庫的大部分功能。安卓系統(tǒng)聯(lián)系人數(shù)據(jù)庫首先是ContactsContact.Data表,該表保存了MimeTypeID和RawContactID。這兩個(gè)Id的使用可以將data表和raw_contacts表聯(lián)系起來。而聯(lián)系人的所有專屬數(shù)據(jù)保存在列data1至data15中,各列中保存的內(nèi)容根據(jù)
34、MimeTypeID的不同而不同。如保存號(hào)碼(MimeTypeID=5)的那行數(shù)據(jù)中,data1列保存號(hào)碼,data2列保存號(hào)碼類型(手機(jī)號(hào)碼/家庭號(hào)碼/工作號(hào)碼等)。8見表3.1。表3.1 Data數(shù)據(jù)表字段名類型描述備注_idINTEGER PRIMARY_KEY行idmimetype_idINTEGER當(dāng)前行保存的mimetype類型的id。如1為郵箱;2聊天賬號(hào);3住址;4圖片;5電話號(hào)碼;6姓名等 raw_contact_idINTEGERraw_contacts表的_iddata1 到data15TEXT通用數(shù)據(jù)列(保存著聯(lián)系人的信息,聯(lián)系人名稱、電話號(hào)碼等)。ContactsCo
35、ntact.Contacts表,該表保存了所有的手機(jī)聯(lián)系人。該表保存了聯(lián)系人的ContactID、聯(lián)系次數(shù)、最后一次聯(lián)系的時(shí)間、是否含有號(hào)碼等信息。910見表3.2。表3.2 Conatct數(shù)據(jù)表字段名類型描述備注_idINTEGER行id name_raw_contact_idINTEGERraw_contacts表的_idcustom_ringtoneTEXT與聯(lián)系人相關(guān)的鈴聲times_contactedINTEGER與該聯(lián)系人聯(lián)系的次數(shù)last_time_contactedINTEGER上次聯(lián)系的時(shí)間statrredINTEGER是否是常用聯(lián)系人是(1),否(0)has_phone_n
36、umberINTEGER聯(lián)系人是否至少有一個(gè)手機(jī)號(hào)碼 是(1),否(0)ContactsContract.RawContacts表,該表保存了所有創(chuàng)建過的手機(jī)聯(lián)系人。該表保存了聯(lián)系人的RawContactID、ContactID、顯示的名字、用于排序的漢語拼音等信息。見表3.3。表3.3 RawConatcts數(shù)據(jù)表字段名類型描述備注_idINTEGER行id contact_idINTEGERcontacts 表中的_iddisplay_nameTEXT聯(lián)系人顯示名稱它可能是電子郵件地址,如果聯(lián)系人顯示名稱是不可用display_name_altTEXT聯(lián)系人顯示名稱的替代表示如西方名字“名
37、在前”而不是 “姓在前”。soft_keyTEXT排序的關(guān)鍵考慮賬戶中語言環(huán)境,按地址簿中的顯示名稱進(jìn)行排序。soft_key_altTEXT排序鍵基于全名的拼音Mimetypes表,該表定義了所有的MimeTypeID,即聯(lián)系人的各個(gè)字段的唯一標(biāo)志。見表3.4。表3.4 Mimetupes數(shù)據(jù)表字段名類型描述備注_idINTEGER行id與data表中的mimetype_id對(duì)應(yīng)mimetypeTEXT數(shù)據(jù)的類型phone_lookup表,該表用來聯(lián)系data表與RawContact表。見表3.5。表3.5 Phone_lookup數(shù)據(jù)表字段名類型描述備注data_idINTEGERdata
38、對(duì)應(yīng)的id通過data_id可以找到 data表中相對(duì)的數(shù)據(jù)。raw_contact_idINTEGERraw_contact對(duì)應(yīng)的id通過id可找到 raw_contact表中相對(duì)的數(shù)據(jù)安卓系統(tǒng)短信數(shù)據(jù)庫canonical_addresses表,該表用來保存每個(gè)短信會(huì)話對(duì)應(yīng)的多個(gè)發(fā)送或者接收的號(hào)碼。見表3.6。表3.6 Canoical_addressed數(shù)據(jù)表字段名類型描述備注_idINTEGER PRIMARY_KEY主鍵ID系統(tǒng)生成addressTEXT發(fā)送或接收的電話號(hào)碼Sms短信表,該表用來保存單條短信記錄相關(guān)數(shù)據(jù)。每條記錄都存儲(chǔ)了對(duì)應(yīng)短信記錄的號(hào)碼、時(shí)間、狀態(tài)、內(nèi)容等信息。見表3
39、.7。表3.7 Sms數(shù)據(jù)表字段名類型描述備注_idINTEGER PRIMARY_KEY主鍵ID系統(tǒng)生成thread_idINTEGER對(duì)應(yīng)會(huì)話的id外鍵addressTEXT對(duì)方短信號(hào)碼personINTEGER存在電話薄里的名字不存在的為空dateINTEGER日期protocolINTEGER協(xié)議發(fā)送短信為空,收到為0readINTEGER已讀未讀已讀為1,未讀為0statusINTEGER短信狀態(tài)如果是-1,則表明該短信沒有被收到typeINTEGER短信類型發(fā)短信為2,收到短信為1subjectTEXT主題bodyTEXT短信內(nèi)容lockedINTEGER是否鎖掉了。0為未鎖,1已
40、鎖sim_idINTEGERsim卡idThreads會(huì)話表,每個(gè)不同的號(hào)碼對(duì)應(yīng)一個(gè)不同的對(duì)話,而會(huì)話表就是存儲(chǔ)會(huì)話數(shù)據(jù)的結(jié)構(gòu)。該表保存對(duì)應(yīng)會(huì)話的短信總條數(shù)、創(chuàng)建日期、最新一條的短信內(nèi)容等數(shù)據(jù)。見表3.8。表3.8 Threads數(shù)據(jù)表字段名類型描述備注_idINTEGER PRIMARY_KEY主鍵ID系統(tǒng)生成dateINTEGER日期會(huì)話創(chuàng)建的日期message_countINTEGER短信總條數(shù)recipient_idsTEXTcanonical_addresses的主鍵外鍵snippetTEXT在最前面顯示的短信snippet_csINTEGER編碼格式readINTEGER是否已讀已
41、讀為1,未讀為0typeINTEGER短信類型push的短信為0errorINTEGER是否有錯(cuò)誤有錯(cuò)誤為1,沒有為0has_attachmentINTEGER是否有附件沒有為1,有為0服務(wù)端數(shù)據(jù)庫服務(wù)端數(shù)據(jù)目前共5張表,分為User表、Sms_file表、Shared_contact_file表、Excel_file表、Contact_file表五張表。User表為存儲(chǔ)用戶基本信息的表,而其他表主要用于存儲(chǔ)用戶在Web端和手機(jī)客戶端產(chǎn)生的各種操作,如備份、文件上傳,包括了操作時(shí)間,操作對(duì)象等信息。數(shù)據(jù)庫的各張表之間的關(guān)系ER圖如下,見圖3.5。用戶與備份表之間為1對(duì)1的關(guān)系,而用戶與聯(lián)系人分
42、析文件和Excel工作文件之間是1對(duì)N的關(guān)系。圖3.3 服務(wù)端數(shù)據(jù)庫ER圖User用戶表,保存了用戶信息相關(guān)的數(shù)據(jù),包括手機(jī)號(hào),密碼,昵稱等關(guān)鍵數(shù)據(jù)。11見圖3.9。表3.9 User數(shù)據(jù)表字段名類型描述備注Idint(20)用戶主鍵PhoneNumbervarchar(20)用戶手機(jī)號(hào)Passwordvarchar(32)用戶密碼UserNamevarchar(20)用戶昵稱EmailAaddressvarchar(20)郵箱地址RegisterTimedatetime注冊(cè)時(shí)間IsOnLineint(1)是否在線1為在線,0為不在線Sms_file表,保存了用戶云備份上的操作記錄,保存了云備
43、份的短信文件位置,短信數(shù)量等數(shù)據(jù)。見圖3.10。表3.10 Sms_file數(shù)據(jù)表字段名類型描述備注Idint(20)唯一標(biāo)識(shí)User_Idint(20)用戶Id外鍵Sms_File_Locationvarchar(100)短信文件位置Sms_Countint(8)短信數(shù)量Newest_Upload_Timedatetime最新一次上傳時(shí)間Shared_contact_file表,保存用戶進(jìn)行聯(lián)系人分享操作的操作記錄,包括文件位置,下載所需要的密碼等信息。見圖3.11。表3.11 Shared_contact_file數(shù)據(jù)表字段名類型描述備注Idint(20)唯一標(biāo)識(shí)User_Idint(11
44、)用戶IdContact_File_Locationvarchar(100)聯(lián)系人文件位置外鍵Newest_Upload_Timedatetime最新一次上傳時(shí)間Extract_Download_Passwordvarchar(10)下載需要的密碼默認(rèn)為6位Download_Timesint(11)下載次數(shù)Excel_file表,保存用戶在web端上傳的excel格式聯(lián)系人的操作的記錄,包括文件位置,上傳時(shí)間等信息。見圖3.12。表3.12 Excel_file數(shù)據(jù)表字段名類型描述備注Idint(20)唯一標(biāo)識(shí)User_Idint(20)用戶Id外鍵Excel_File_Locationvar
45、char(100)聯(lián)系人文件位置Newest_Upload_Timedatetime最新一次上傳時(shí)間Contact_file表,保存用戶進(jìn)行聯(lián)系人備份操作的操作記錄,包括文件位置,聯(lián)系人數(shù)量等。見圖3.13。表3.13 Contact_file數(shù)據(jù)表字段名類型描述備注Idint(20)唯一標(biāo)識(shí)User_Idint(20)用戶Id外鍵contact_File_Locationvarchar(100)聯(lián)系人文件位置contact_Countint(8)聯(lián)系人數(shù)量Newest_Upload_Timedatetime最新一次上傳時(shí)間詳細(xì)設(shè)計(jì)賬號(hào)注冊(cè)賬號(hào)注冊(cè)流程是用戶先輸入自己的手機(jī)號(hào),并設(shè)置密碼,在確
46、定無誤后,向驗(yàn)證碼服務(wù)器發(fā)出獲取驗(yàn)證碼請(qǐng)求,然后將得到的驗(yàn)證碼再返回給服務(wù)器進(jìn)行驗(yàn)證,驗(yàn)證通過后即正式提交注冊(cè)請(qǐng)求。用戶注冊(cè)過程泳道圖見圖3.6。圖3.4 用戶注冊(cè)泳道圖短信驗(yàn)證回調(diào)關(guān)鍵代碼如下:EventHandler eh = new EventHandler() Override public void afterEvent(int event, int result, Object data) if (result = SMSSDK.RESULT_COMPLETE) /回調(diào)完成 if (event = SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) /提交
47、驗(yàn)證碼成功 SMSSDK.registerEventHandler(eh); /注冊(cè)短信回調(diào)短信發(fā)送短信發(fā)送流程是在用戶編輯好短信內(nèi)容和對(duì)方號(hào)碼后,首先通過服務(wù)器對(duì)收件人的在線與否狀態(tài)進(jìn)行查詢。如果在線,則通過服務(wù)器網(wǎng)絡(luò)發(fā)送消息給對(duì)方,并通過本地的廣播接收器獲取反饋信息。如果不在線,則通過正常的電信運(yùn)營商的短信服務(wù)給對(duì)方發(fā)送短信。短信發(fā)送的順序圖見圖3.7。圖3.5 短信發(fā)送注冊(cè)順序圖短信發(fā)送關(guān)鍵代碼如下:SmsManager sm = SmsManager.getDefault();Intent send = new Intent(SENT_SMS_ACTION);PendingIntent
48、 sendPI = PendingIntent.getBroadcast(context, 0, send, 0);/ 短信發(fā)送廣播Intent delive = new Intent(DELIVERED_SMS_ACTION); / 發(fā)送結(jié)果廣播PendingIntent deliverPI = PendingIntent.getBroadcast(context, 0, delive, 0);for (String pno : phone) / 執(zhí)行發(fā)送 sm.sendTextMessage(pno, null, body, sendPI, deliverPI);短信接收短信的接收流程是在
49、系統(tǒng)的后臺(tái)廣播接收器收到消息廣播后開始的。系統(tǒng)首先會(huì)調(diào)用數(shù)據(jù)庫工具,將消息數(shù)據(jù)進(jìn)行保存,同時(shí)反饋給用戶頁面進(jìn)行刷新。另外同時(shí)也會(huì)根據(jù)系統(tǒng)設(shè)置中是否開啟了通知欄,決定是否給用戶發(fā)送通知欄上通知。兩步操作是同時(shí)進(jìn)行的。該過程順序圖見圖3.8。圖3.6 短信接受順序圖短信接收關(guān)鍵代碼Bundle bundle = intent.getExtras();/獲取數(shù)據(jù)Object pdus = (Object) bundle.get(pdus);SmsMessage messages = new SmsMessagepdus.length;for (int i = 0; i messages.length
50、; i+) messagesi = SmsMessage.createFromPdu(byte) pdusi);/解析號(hào)碼String address = messages0.getOriginatingAddress();/解析內(nèi)容String fullMessage = ;for (SmsMessage message : messages) fullMessage += message.getMessageBody();短信云備份短信云備份的流程是在用戶發(fā)出備份請(qǐng)求后,先從數(shù)據(jù)庫中取出所有的短信數(shù)據(jù),再按照序列化的方法,通過XML讀寫類寫到XML文件中,并將文件數(shù)據(jù)傳遞給文件上傳類。文件
51、上傳類在獲取到用戶賬戶信息后,即將包括用戶信息和文件數(shù)據(jù)的所有的數(shù)據(jù)通過請(qǐng)求發(fā)送給服務(wù)器。12服務(wù)器在處理和保存文件后,即將處理結(jié)果反饋給系統(tǒng),并刷新用戶頁面。見圖3.9。圖3.7 短信云備份順序圖短信數(shù)據(jù)恢復(fù)短信恢復(fù)流程是在用戶發(fā)出恢復(fù)請(qǐng)求后,首先根據(jù)賬號(hào)信息生成一個(gè)短信備份文件的URL地址,然后通過文件下載工具將該地址的文件進(jìn)行下載。下載到本地后,通過XML讀寫類將文件中數(shù)據(jù)讀取為短信序列化對(duì)象,最后插入到數(shù)據(jù)庫中。見圖3.10。圖3.8 短信數(shù)據(jù)恢復(fù)順序圖聯(lián)系人分享聯(lián)系人分享的流程,是在用戶選擇好要分享的聯(lián)系人數(shù)據(jù)后,設(shè)置下載密碼,即會(huì)將所有的聯(lián)系人數(shù)據(jù)對(duì)象通過vcard文件工具寫入到本
52、地vcf格式的文件中。然后調(diào)用文件上傳工具,將所有的文件數(shù)據(jù)上傳到服務(wù)器中個(gè)人賬號(hào)下。服務(wù)器在接收到數(shù)據(jù)后,即會(huì)將該文件的服務(wù)器端存儲(chǔ)的URL生成并返回給用戶,最后在本地通過二維碼工具生成一個(gè)二維碼,并給用戶以分享的操作。見圖3.11。圖3.9 聯(lián)系人分享順序圖掃描二維碼導(dǎo)入聯(lián)系人掃描二維碼導(dǎo)入聯(lián)系人的系統(tǒng)流程是在用戶掃描或者直接從相冊(cè)中獲取其他人分享給他的二維碼后,通過解析得到二維碼包含的文件基礎(chǔ)URL數(shù)據(jù)信息。在輸入下載密碼,系統(tǒng)會(huì)將其組裝成完整的文件URL地址。然后通過下載工具,從服務(wù)器中將文件下載下來。在獲取到完整文件數(shù)據(jù)后,通過調(diào)用vcard文件工具,將文件中的聯(lián)系人數(shù)據(jù)導(dǎo)出為特定的
53、聯(lián)系人對(duì)象,然后通過聯(lián)系人數(shù)據(jù)操作類將對(duì)象保存到聯(lián)系人數(shù)據(jù)庫中。見圖3.12。圖3.10 掃描二維碼,導(dǎo)入聯(lián)系人順序圖語音發(fā)短信語音發(fā)短信流程是在用戶輸入語音后,訊飛的SDK首先會(huì)將語音數(shù)據(jù)發(fā)送到訊飛服務(wù)器,并將解析結(jié)果以json格式返回給客戶端。在解析出返回的數(shù)據(jù)后,即對(duì)聯(lián)系人的名字進(jìn)行查詢獲取實(shí)際的電話號(hào)碼,生成一個(gè)實(shí)際的短信發(fā)送任務(wù)。見圖3.13。圖3.11 短信發(fā)送注冊(cè)順序圖如輸入語音為“發(fā)留言給張三內(nèi)容是我明天去找你”,返回的json結(jié)果如下: semantic: slots: content: 我明天去找你, name: 張三, messageType: voice_message
54、 , rc: 0, operation: SEND, service: message, text: 發(fā)留言給張三內(nèi)容是我明天去找你群發(fā)回復(fù)自動(dòng)統(tǒng)計(jì)功能群發(fā)回復(fù)自動(dòng)統(tǒng)計(jì)是用戶在選擇好要查詢的短信會(huì)話后,后臺(tái)即會(huì)根據(jù)該會(huì)話id,查找出所有對(duì)應(yīng)的回復(fù)記錄。在結(jié)果統(tǒng)計(jì)工具處理之后,將結(jié)果返回給前臺(tái)進(jìn)行顯示,并可以設(shè)置一個(gè)定時(shí)二次發(fā)送的任務(wù)。見圖3.14。圖3.12 群發(fā)回復(fù)自動(dòng)統(tǒng)計(jì)順序圖 系統(tǒng)關(guān)鍵技術(shù) 多線程下載技術(shù)多線程下載技術(shù)是在從服務(wù)器中下載文件時(shí)使用,通過同時(shí)開啟多個(gè)線程,可以分批從服務(wù)器中獲取文件數(shù)據(jù),加快文件下載速度。這里給出了一個(gè)下載線程的數(shù)據(jù)結(jié)構(gòu)類圖。(見圖4.1)圖4.1 多線程下
55、載線程類圖下載線程類繼承自系統(tǒng)線程類,同時(shí)保存了下載文件的URL地址,下載開始點(diǎn),需要下載文件的大小,保存數(shù)據(jù)的分割文件和已下載的文件長(zhǎng)度。該類通過構(gòu)造函數(shù)初始化相應(yīng)的下載參數(shù),然后調(diào)用run函數(shù)開啟線程的工作,進(jìn)行下載,最后將各個(gè)線程對(duì)象下載的數(shù)據(jù)分割文件進(jìn)行整合即可得到完整的文件。 異步任務(wù)處理技術(shù)Android是一個(gè)運(yùn)行在手機(jī)移動(dòng)平臺(tái)上的系統(tǒng),系統(tǒng)硬件性能上有限。而在進(jìn)行任務(wù)處理,如網(wǎng)絡(luò)請(qǐng)求,數(shù)據(jù)庫查詢,文件讀寫等耗時(shí)操作時(shí),常需要單獨(dú)開一個(gè)線程在后臺(tái)去運(yùn)行,并將結(jié)果返回給主線程,再反饋到用戶界面上。所以在構(gòu)建本系統(tǒng)時(shí),就需要大量使用異步任務(wù)處理技術(shù)。而在Android開發(fā)中,對(duì)應(yīng)的技術(shù)
56、之一就是使用線程加Handler消息機(jī)制。在新開一條子線程的同時(shí),也將主線程的消息處理Handler傳遞進(jìn)去。在線程正常結(jié)束或者出現(xiàn)異常時(shí),由Handler發(fā)出對(duì)應(yīng)不同的消息到主線程的消息隊(duì)列中,再由主線程的Looper去從消息隊(duì)列中取出對(duì)應(yīng)的消息給Handler進(jìn)行處理,從而達(dá)到跨進(jìn)程通信的目的。13(見圖4.2)圖4.2 異步消息示意圖 跨應(yīng)用數(shù)據(jù)處理技術(shù)本系統(tǒng)涉及到了android原生短信數(shù)據(jù)的增刪改查,聯(lián)系人數(shù)據(jù)的刪改,日歷數(shù)據(jù)的刪改等,而這原本都屬于不同軟件應(yīng)用中的數(shù)據(jù)。如何在自己的應(yīng)用中對(duì)其他應(yīng)用的數(shù)據(jù)進(jìn)行獲取和處理,也是一個(gè)比較有技術(shù)含量的工作。這里Google官方提供了Cont
57、entProvider數(shù)據(jù)共享機(jī)制,通過構(gòu)造對(duì)應(yīng)應(yīng)用數(shù)據(jù)的特定URL,并在系統(tǒng)配置申請(qǐng)相應(yīng)權(quán)限,即可獲取并處理其他應(yīng)用中的數(shù)據(jù)。 系統(tǒng)實(shí)現(xiàn)與測(cè)試 系統(tǒng)實(shí)現(xiàn)功能實(shí)現(xiàn)系統(tǒng)首頁系統(tǒng)首頁為短信普通會(huì)話顯示頁面,展示了會(huì)話最新的時(shí)間,對(duì)應(yīng)的聯(lián)系人姓名,最新一條短信信息的預(yù)覽。其中如果是來自普通號(hào)碼但是為陌生聯(lián)系人的短信就會(huì)被標(biāo)記為紅色的陌標(biāo)識(shí)提醒用戶注意。(見圖5.1)而通過首頁可以進(jìn)入到專門存放服務(wù)類信息的服務(wù)短信頁。這里存放了所有來自網(wǎng)絡(luò)服務(wù)號(hào)碼的短信會(huì)話,且擁有圖標(biāo)匹配功能,對(duì)于能夠識(shí)別出來的常見對(duì)象,能夠自動(dòng)匹配上對(duì)應(yīng)的Logo圖標(biāo),方便用戶更容易識(shí)別出。(見圖5.2) 圖5.1 普通會(huì)話頁面
58、圖5.2 服務(wù)會(huì)話頁面 系統(tǒng)設(shè)置與個(gè)人中心用戶可以滑動(dòng)或者點(diǎn)擊進(jìn)入首頁上的導(dǎo)航欄,導(dǎo)航欄上有相應(yīng)的各個(gè)設(shè)置和小功能的入口,也可以在導(dǎo)航欄這里進(jìn)行賬號(hào)的注銷操作。向左滑動(dòng)或者點(diǎn)擊回到首頁即可恢復(fù)。(見圖5.3) 圖5.3 導(dǎo)航欄頁面 圖5.4 設(shè)置列表頁面目前系統(tǒng)提供了自動(dòng)回復(fù)設(shè)置、通知欄設(shè)置、語音發(fā)短信設(shè)置幾種用戶可自定義的參數(shù)設(shè)置。(見圖5.4)用戶可以自主定義是否開啟該功能,該功能里面的具體參數(shù)是怎么樣的。如自動(dòng)回復(fù)設(shè)置開關(guān)和回復(fù)短語(見圖5.5) 圖5.5 自動(dòng)回復(fù)設(shè)置頁面 圖5.6 文本編輯短信頁面新建短信用戶可以在進(jìn)入新建短信頁面(見圖5.6),通過選擇聯(lián)系人作為收件人(見圖5.7)
59、,并編輯短信內(nèi)容,即可生成一個(gè)新的短信發(fā)送任務(wù)。選擇的聯(lián)系人會(huì)以標(biāo)簽的形式展現(xiàn)出來,而發(fā)送按鈕只有在聯(lián)系人和發(fā)送內(nèi)容均合法時(shí)才會(huì)顯示出來。 圖5.7 選擇聯(lián)系人頁面 圖5.8 語音發(fā)短信頁面語音發(fā)短信用戶在頁面上可以看到語音發(fā)短信的示例和操作要領(lǐng),以迅速學(xué)會(huì)如何使用本軟件進(jìn)行語音發(fā)短信操作。同時(shí)頁面給用戶提供了上傳聯(lián)系人按鈕,將本地的聯(lián)系人數(shù)據(jù)上傳到訊飛的服務(wù)器中提供參考,保證語音識(shí)別效果更準(zhǔn)確。(見圖5.8)而在語音識(shí)別結(jié)束后,系統(tǒng)會(huì)根據(jù)識(shí)別結(jié)果自動(dòng)生成一個(gè)發(fā)短信任務(wù)。(見圖5.9) 圖5.9語音發(fā)短信結(jié)果頁面 圖5.10 分享聯(lián)系人頁面 分享聯(lián)系人頁面用戶在選擇號(hào)要分享的聯(lián)系人后,通過對(duì)話
60、框設(shè)置6位下載密碼,點(diǎn)擊確定后即會(huì)生成一個(gè)二維碼。用戶可以通過分享將二維碼分享給同學(xué)好友。(見圖5.11) 圖5.11 設(shè)置密碼頁面 圖5.12 二維碼生成頁面 掃描二維碼 用戶可以通過本軟件掃描二維碼,獲取其中的數(shù)據(jù),或者直接通過選擇系統(tǒng)中已存在的圖片進(jìn)行識(shí)別。在掃描二維碼的過程中也支持開啟閃光燈功能。(見圖5.14) 圖5.13 分享二維碼頁面 圖5.14 掃描二維碼頁面 云備份用戶可以在聯(lián)系人和短信云備份和恢復(fù)頁面進(jìn)行備份或者恢復(fù)操作,并會(huì)同時(shí)顯示出本地的數(shù)據(jù)量和遠(yuǎn)程服務(wù)器上的數(shù)據(jù)量。(見圖5.15和圖5.16) 圖5.15 聯(lián)系人云備份頁面 圖5.16 短信恢復(fù)頁面登錄與群發(fā)回復(fù)用戶可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年飾品商鋪?zhàn)赓U與品牌合作與市場(chǎng)拓展合同3篇
- 2025版互聯(lián)網(wǎng)數(shù)據(jù)中心相關(guān)方環(huán)境管理協(xié)議3篇
- 二零二五版鋼筋焊接工藝用工合同模板范文2篇
- 二零二五版模具維修改型與產(chǎn)業(yè)融合合同4篇
- 2025年道路工程質(zhì)量檢測(cè)與驗(yàn)收合同3篇
- 2025年度個(gè)人股份代持及轉(zhuǎn)讓法律文件3篇
- 2025年度采礦權(quán)出讓合同范本:礦產(chǎn)資源勘查開發(fā)技術(shù)規(guī)范3篇
- 2025年度冰箱智能互聯(lián)技術(shù)合作協(xié)議3篇
- 二零二五年度新能源用地抵押借款合同3篇
- 二零二五版定制家具銷售與售后服務(wù)協(xié)議7篇
- 2024年社區(qū)警務(wù)規(guī)范考試題庫
- 2024年食用牛脂項(xiàng)目可行性研究報(bào)告
- 消防安全隱患等級(jí)
- 溫室氣體(二氧化碳和甲烷)走航監(jiān)測(cè)技術(shù)規(guī)范
- 部編版一年級(jí)語文下冊(cè)第一單元大單元教學(xué)設(shè)計(jì)
- 《保單檢視專題》課件
- 北京地鐵13號(hào)線
- 2023山東春季高考數(shù)學(xué)真題(含答案)
- 職業(yè)衛(wèi)生法律法規(guī)和標(biāo)準(zhǔn)培訓(xùn)課件
- 高二下學(xué)期英語閱讀提升練習(xí)(二)
- 民事訴訟證據(jù)清單模板
評(píng)論
0/150
提交評(píng)論