版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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ù)越來(lái)越少。但傳統(tǒng)短信在一些特殊場(chǎng)景,如手機(jī)號(hào)身份驗(yàn)證、廣告短信推送、收發(fā)祝福、收取火車(chē)票通知等情況下依然有著廣泛的應(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)用。文章首先介紹了開(kāi)發(fā)背景和目前短信軟件的發(fā)展情況,然后再重點(diǎn)對(duì)系統(tǒng)的需求進(jìn)行了分析,對(duì)系統(tǒng)的數(shù)據(jù)庫(kù)和模塊細(xì)節(jié)進(jìn)行了設(shè)計(jì)。同時(shí)對(duì)系統(tǒng)所使用到的關(guān)鍵技術(shù)進(jìn)行了說(shuō)
2、明。最后通過(guò)系統(tǒng)截圖和測(cè)試數(shù)據(jù)對(duì)系統(tǒng)實(shí)現(xiàn)情況進(jìn)行了展示。該應(yīng)用在系統(tǒng)基本短信收發(fā)功能的基礎(chǔ)上,從用戶(hù)的短信使用習(xí)慣和生活中的實(shí)際需求出發(fā),針對(duì)群發(fā)的通知回復(fù)情況統(tǒng)計(jì)、短信日程通知管理、數(shù)據(jù)備份、與短信聯(lián)系的聯(lián)系人數(shù)據(jù)的導(dǎo)入、廣告短信顯示等在使用中會(huì)遇到的實(shí)際生活場(chǎng)景,提供了一套智能化的解決方案,為用戶(hù)提供一個(gè)更方便好用的管理軟件。系統(tǒng)整體采用CS架構(gòu),客戶(hù)端使用Android開(kāi)發(fā)技術(shù)進(jìn)行開(kāi)發(fā),服務(wù)端使用Java EE技術(shù)和tomcat進(jìn)行開(kāi)發(fā)部署,數(shù)據(jù)庫(kù)為安卓系統(tǒng)原生SQLite數(shù)據(jù)庫(kù)與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緒論 開(kāi)發(fā)背景自短信功能在手機(jī)通信業(yè)務(wù)上產(chǎn)生以來(lái),便以其使用便捷的特點(diǎn)受到廣大用戶(hù)歡迎。而短信功能本身也經(jīng)歷了較大的發(fā)展。從簡(jiǎn)單的一對(duì)一文本收發(fā),到加入一對(duì)多群發(fā)的書(shū)寫(xiě)與讀取,短信功能得到了進(jìn)一步的加強(qiáng)。但隨著智能手機(jī)系統(tǒng)的不斷普及,各種即時(shí)通訊軟件App如QQ,微信等社交工具以其友好的界面和免費(fèi)的使用模式,得到迅速流行和用戶(hù)喜愛(ài)。但基于現(xiàn)實(shí)世界中相互強(qiáng)關(guān)聯(lián)關(guān)系的通訊錄和短信業(yè)務(wù)在市場(chǎng)中仍然顯得非常重要。在我們
10、日常使用智能手機(jī)的短信功能時(shí),大量通知類(lèi)信息,服務(wù)類(lèi)信息充斥著我們的收件箱, 想要去查看群發(fā)短信回復(fù)情況,卻要花上十幾秒滑動(dòng)屏幕,所謂的智能化形同虛設(shè)。如何將其進(jìn)行一個(gè)更好的顯示和功能擴(kuò)展是一個(gè)問(wèn)題。而對(duì)于生活場(chǎng)景中,如社團(tuán)活動(dòng)中常見(jiàn)的群發(fā)通知,工作開(kāi)會(huì)時(shí)有時(shí)候不方便回短信等問(wèn)題,也需有一個(gè)比較好的利用智能手機(jī)的特性去解決問(wèn)題的方案。與即時(shí)通訊相比,短信存在資費(fèi)高的問(wèn)題,用其作為溝通工具有著一定的成本。另外隨著手機(jī)用戶(hù)的不斷增長(zhǎng),特別是智能手機(jī)(Android)的大規(guī)模普及,用戶(hù)對(duì)手機(jī)使用的特點(diǎn),如操作便捷,交互人性化等方面有了更高的要求。 國(guó)內(nèi)發(fā)展現(xiàn)狀及趨勢(shì)目前國(guó)內(nèi)的短信管理產(chǎn)品主要以各大手
11、機(jī)廠(chǎng)商自己的系統(tǒng)短信應(yīng)用為主。其一般主要注重短信通信的基礎(chǔ)功能,對(duì)由短信擴(kuò)展出來(lái)的功能沒(méi)有太多重視。市場(chǎng)上也有多款不同的軟件供用戶(hù)選擇,差異主要體現(xiàn)在樣式上。軟件功能雖有些不同,但大同小異,且基于國(guó)內(nèi)實(shí)際生活場(chǎng)景進(jìn)行優(yōu)化的管理功能并沒(méi)有太多。但是隨著小米系統(tǒng)等新的帶有互聯(lián)網(wǎng)思維的系統(tǒng)出現(xiàn),短信產(chǎn)品也有著越來(lái)越多的創(chuàng)造性,如利用智能技術(shù)對(duì)聯(lián)系人稱(chēng)謂進(jìn)行預(yù)處理等等,以方便用戶(hù)平常節(jié)假日祝福短信的發(fā)送。隨著自然語(yǔ)言處理和人工智能技術(shù)的不斷發(fā)展,軟件的發(fā)展趨勢(shì)都是變得更加智能化、生活化,通過(guò)對(duì)使用場(chǎng)景的分析做出定制優(yōu)化,通過(guò)對(duì)已產(chǎn)生數(shù)據(jù)的利用產(chǎn)生新的價(jià)值。而短信作為目前還沒(méi)有大范圍應(yīng)用智能化的軟件部分
12、,在之后的發(fā)展中應(yīng)該會(huì)變得越來(lái)越易用和智能。如利用數(shù)據(jù)挖掘技術(shù)對(duì)大量短信數(shù)據(jù)進(jìn)行處理,從而實(shí)現(xiàn)攔截垃圾短信和識(shí)別詐騙短信的功能。目前基本的短信軟件開(kāi)發(fā)技術(shù)已比較成熟,Android系統(tǒng)版本已經(jīng)更新到6.0,而國(guó)內(nèi)的手機(jī)廠(chǎng)商也在不斷對(duì)Android系統(tǒng)進(jìn)行不斷的改造和優(yōu)化,目前成果豐碩,且國(guó)內(nèi)Android開(kāi)發(fā)技術(shù)書(shū)籍和論壇也非常多,技術(shù)較為成熟。 系統(tǒng)特色介紹本文章將介紹的管理軟件以系統(tǒng)原生短信基本功能為基礎(chǔ),從目標(biāo)群體的短信使用情景出發(fā),利用網(wǎng)絡(luò)技術(shù)、文本匹配等技術(shù),針對(duì)用戶(hù)群發(fā)通知需要收費(fèi)、群發(fā)的回復(fù)情況查看復(fù)雜、無(wú)法進(jìn)行多選回復(fù)、通知類(lèi)短信繁多導(dǎo)致管理不便、換手機(jī)后數(shù)據(jù)丟失等在短信使用中
13、會(huì)實(shí)際遇到的問(wèn)題,為用戶(hù)提供一套智能化的解決方案。如在節(jié)日時(shí),用戶(hù)群體同樣也會(huì)收到來(lái)自親朋好友的大量的祝福短信。不回復(fù)會(huì)顯得不夠禮貌,但是如果像傳統(tǒng)的回復(fù)情況一樣逐條回復(fù),是一件費(fèi)時(shí)的事情。因此針對(duì)用戶(hù)回復(fù)某一特定情景下的短信時(shí)所回復(fù)內(nèi)容比較相似的情況,可以通過(guò)多選所要回復(fù)的短信,統(tǒng)一進(jìn)行回復(fù)。如用戶(hù)收到含有日期時(shí)間,地點(diǎn)內(nèi)容等的通知短信時(shí),可以一鍵直接將短信生成相應(yīng)日程提醒。系統(tǒng)將自動(dòng)調(diào)用日程軟件,并根據(jù)短信內(nèi)容中的日期直接定位到當(dāng)天,并將地點(diǎn)內(nèi)容等信息提取并填入所需要的日程信息中,用戶(hù)根據(jù)個(gè)人需要修改需要提前提醒的時(shí)間后,即會(huì)生成相應(yīng)的日程安排。學(xué)生社團(tuán)團(tuán)體等用戶(hù)群體,經(jīng)常需要通過(guò)短信去給
14、成員發(fā)送通知,而這一過(guò)程有著短信資費(fèi)昂貴和回復(fù)統(tǒng)計(jì)困難的問(wèn)題。本系統(tǒng)支持通過(guò)賬號(hào)系統(tǒng)形成一個(gè)即時(shí)通訊應(yīng)用,對(duì)于在線(xiàn)的收件方可以通過(guò)網(wǎng)絡(luò)發(fā)送消息,不在線(xiàn)再使用短信通道。同時(shí)通過(guò)圖表的方式將回復(fù)情況進(jìn)行統(tǒng)計(jì)和展示。用戶(hù)在生活中常有更換手機(jī)或者手機(jī)遺失的情況,而手機(jī)更換后,原手機(jī)的數(shù)據(jù)就丟失了。針對(duì)這一問(wèn)題,本系統(tǒng)支持通過(guò)賬號(hào)進(jìn)行手機(jī)聯(lián)系人和短信數(shù)據(jù)的云備份和恢復(fù)。開(kāi)發(fā)環(huán)境硬件:PC機(jī)編譯器:Android Studio 1.5 和 MyEclipse Professional 2014數(shù)據(jù)庫(kù):MySQL服務(wù)器:Tomcat8瀏覽器:Google Chrome版本管理工具:Git測(cè)試手機(jī):華為C88
15、15與華為榮耀4C 開(kāi)發(fā)技術(shù)Android操作系統(tǒng)安卓是一款基于Linux開(kāi)源的部署在移動(dòng)平臺(tái)上的操作系統(tǒng),普通開(kāi)發(fā)者和手機(jī)廠(chǎng)商都可以按照一定的規(guī)則自由地對(duì)其進(jìn)行定制開(kāi)發(fā)。同時(shí)Google提供了一整套的規(guī)范化的開(kāi)發(fā)平臺(tái)和開(kāi)發(fā)體系,方便開(kāi)發(fā)者通過(guò)Google提供的系統(tǒng)API和系統(tǒng)機(jī)制開(kāi)發(fā)出各種各樣的應(yīng)用軟件。1所以通過(guò)Android平臺(tái),我們可以對(duì)系統(tǒng)短信應(yīng)用進(jìn)行重新定制或者二次開(kāi)發(fā),達(dá)到我們個(gè)性化需求開(kāi)發(fā)的目的??拼笥嶏w開(kāi)放語(yǔ)義API科大訊飛開(kāi)放語(yǔ)義平臺(tái),是一套集語(yǔ)義解析、智能問(wèn)答入于一體的技術(shù)接入平臺(tái),面向廣大開(kāi)發(fā)者提供一站式語(yǔ)義解決方案。該平臺(tái)覆蓋多垂直領(lǐng)域的語(yǔ)義通用場(chǎng)景,支持Andrio
16、d、IOS等多種應(yīng)用平臺(tái),通過(guò)規(guī)范和多樣的API,滿(mǎn)足應(yīng)用的個(gè)性化定制需求。在本系統(tǒng)中就需要使用到該API,對(duì)用戶(hù)輸入的語(yǔ)音進(jìn)行語(yǔ)義解析,獲取解析結(jié)果后生成發(fā)短信任務(wù),從而實(shí)現(xiàn)語(yǔ)音發(fā)短信功能。極光推送IM SDK極光IM為App開(kāi)發(fā)者提供易用可靠的即時(shí)通信云服務(wù),搭建應(yīng)用用戶(hù)間自由的交流通道,增強(qiáng)產(chǎn)品社會(huì)化屬性。極光 IM 提供單聊,群聊的方式。聊天內(nèi)容支持文本,圖片,語(yǔ)音以及自定義消息等多種格式。終端平臺(tái)覆蓋 Android,iOS 以及 Web 客戶(hù)端。極光IM以極光推送的大規(guī)模、高并發(fā)、穩(wěn)定的推送服務(wù)為技術(shù)基礎(chǔ);共享極光推送的多區(qū)域分布接入資源,采用一條連接同時(shí)維護(hù) JMessage 與
17、 JPush 兩個(gè)服務(wù)。而在本系統(tǒng)中就需要到該SDK,集成其即時(shí)通信的服務(wù),并構(gòu)建出一套用戶(hù)系統(tǒng),以此為基礎(chǔ)去實(shí)現(xiàn)類(lèi)似WhatsApp的網(wǎng)絡(luò)消息與手機(jī)電信短信互相接合,無(wú)縫連接的效果。Java EE技術(shù)Java EE是sun公司推出的企業(yè)級(jí)應(yīng)用程序版本,在 Java SE 的基礎(chǔ)上構(gòu)建,提供Web 服務(wù)、組件模型、管理和通信 API。通過(guò)使用Java EE和相應(yīng)的JDBC等組件,我們能夠輕松并規(guī)范地開(kāi)發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端 Java應(yīng)用程序,比如可以用來(lái)開(kāi)發(fā)基于Web 2.0的Java 網(wǎng)站和服務(wù)器端接口。2而本系統(tǒng)的服務(wù)端就是使用Java EE進(jìn)行編寫(xiě),既可以通過(guò)其編寫(xiě)
18、Web頁(yè)面的交互,也可以用其編寫(xiě)手機(jī)客戶(hù)端請(qǐng)求的處理后臺(tái)和數(shù)據(jù)庫(kù)交互的部分。 內(nèi)容安排本論文整體分為六個(gè)大章節(jié)。第一章為緒論,簡(jiǎn)要敘述了系統(tǒng)擁有的特色、發(fā)展現(xiàn)狀及趨勢(shì)、系統(tǒng)的開(kāi)發(fā)背景,同時(shí)介紹了開(kāi)發(fā)本系統(tǒng)所使用的開(kāi)發(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)行了說(shuō)明和劃分。之后文章解釋了所使用到的和與自主設(shè)計(jì)的數(shù)據(jù)庫(kù),同時(shí)以UML泳道圖、UML活動(dòng)圖的方式設(shè)計(jì)了各個(gè)復(fù)雜功能的詳細(xì)交互流程。第四章系統(tǒng)關(guān)鍵技術(shù),本文介紹了在系統(tǒng)開(kāi)發(fā)
19、過(guò)程中所使用到的有較高難度和設(shè)計(jì)思想的技術(shù),包括多線(xiàn)程下載、異步任務(wù)處理、跨應(yīng)用數(shù)據(jù)交互。第五章系統(tǒng)實(shí)現(xiàn)與測(cè)試,文章介紹了系統(tǒng)各功能的實(shí)現(xiàn)情況和部署過(guò)程,并對(duì)系統(tǒng)完成后的測(cè)試過(guò)程和測(cè)試結(jié)果進(jìn)行了說(shuō)明。第六章結(jié)論與展望,該章節(jié)對(duì)畢業(yè)設(shè)計(jì)的整個(gè)過(guò)程做了總結(jié),并提出了不足的地方,同時(shí)也闡述了改進(jìn)方向。 系統(tǒng)需求與分析 系統(tǒng)總體需求總體需求概括來(lái)說(shuō)就是在提供基本短信服務(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)行開(kāi)啟或關(guān)閉,并可以修改功能相應(yīng)的參數(shù)設(shè)置。服務(wù)和廣告類(lèi)短信與普通用戶(hù)短信分隔顯示系統(tǒng)可以將來(lái)自網(wǎng)絡(luò)的服務(wù)類(lèi)短信數(shù)據(jù)與日常普通的短信會(huì)話(huà)分隔開(kāi)來(lái),避免用戶(hù)受太多垃圾短信的干擾。針對(duì)特定類(lèi)型的通知短信可以生成日程針對(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ù)器中,并可以通過(guò)賬號(hào)進(jìn)行恢復(fù)??赏ㄟ^(guò)不同的途徑生成發(fā)短信任務(wù)系統(tǒng)既可以通過(guò)傳統(tǒng)的文本編輯產(chǎn)生短信任務(wù),也可以通過(guò)說(shuō)一句話(huà)的語(yǔ)音產(chǎn)生一個(gè)短信任務(wù)。可以對(duì)系統(tǒng)聯(lián)系人數(shù)據(jù)
21、進(jìn)行操作聯(lián)系人是短信數(shù)據(jù)的重要部分,兩者相輔相成。系統(tǒng)可以導(dǎo)入不同來(lái)源的聯(lián)系人,并支持將本地的聯(lián)系人數(shù)據(jù)通過(guò)二維碼進(jìn)行選擇和分享操作。3 系統(tǒng)整體流程系統(tǒng)整體的流程以用戶(hù)登錄為起點(diǎn)。用戶(hù)進(jìn)入主系統(tǒng)后,可以查看普通短信主列表,并通過(guò)主系統(tǒng)提供的各個(gè)入口,進(jìn)入到新建短信、系統(tǒng)設(shè)置、特色功能等二級(jí)模塊。通過(guò)列表入口,可以進(jìn)入到服務(wù)短信列表或者具體的會(huì)話(huà)模塊。而新建短信模塊分為文本編輯短信和語(yǔ)音發(fā)短信兩部分,在操作完成后也會(huì)回到會(huì)話(huà)模塊。而通過(guò)系統(tǒng)設(shè)置入口可以去完成系統(tǒng)功能的相關(guān)設(shè)置。通過(guò)特色功能入口,用戶(hù)可以使用備份與恢復(fù)、分享聯(lián)系人,下載Excel工作文件三個(gè)功能。整體流程圖見(jiàn)圖2.1。圖2.1系
22、統(tǒng)整體流程圖 用戶(hù)用例分析收短信模塊收短信模塊的用例主要分為五個(gè)模塊,通知欄、普通短信顯示、服務(wù)短信分類(lèi)、群發(fā)通知回復(fù)自動(dòng)統(tǒng)計(jì)、驗(yàn)證碼懸浮框顯示。(見(jiàn)圖2.2)圖2.2收短信功能用例圖收到通知收到信息后,在通知欄會(huì)顯示相應(yīng)消息,內(nèi)容有信息發(fā)件人、短信內(nèi)容的前半部分和收到的時(shí)間,可以在通知欄里點(diǎn)擊消息直接進(jìn)入短信編輯頁(yè)面。查看普通短信列表以與用戶(hù)產(chǎn)生短信消息的號(hào)碼為單位形成列表,在列表項(xiàng)中需要有號(hào)碼(如果已有聯(lián)系人,則顯示姓名)、短信時(shí)間、短信首行內(nèi)容,并按與此聯(lián)系人的最新一條短信的時(shí)間對(duì)列表進(jìn)行排序。查看服務(wù)短信列表來(lái)自網(wǎng)絡(luò)服務(wù)號(hào)碼且未添加聯(lián)系人(如支付寶的通知等)的短信全部整合到一個(gè)列表項(xiàng)中
23、,并與其他列表項(xiàng)顯示上有所區(qū)分。查看回復(fù)自動(dòng)統(tǒng)計(jì)針對(duì)群發(fā)出去的通知短信,用戶(hù)可以選擇進(jìn)行統(tǒng)計(jì),自動(dòng)統(tǒng)計(jì)出有多少人已回復(fù),還有多少人未回復(fù),并使用餅圖圖表進(jìn)行展示。驗(yàn)證碼懸浮框顯示對(duì)于收到的驗(yàn)證碼一類(lèi)的短信會(huì)在通知欄上停留更長(zhǎng)的時(shí)間,以便用戶(hù)編輯。發(fā)短信模塊發(fā)短信模塊的用例主要分為一對(duì)一發(fā)送、一對(duì)多發(fā)送、編輯草稿、使用自動(dòng)回復(fù)、語(yǔ)音發(fā)短信、群回短信。(見(jiàn)圖2.3)圖2.3發(fā)短信功能用例圖一對(duì)一發(fā)短信針對(duì)單一聯(lián)系人或者號(hào)碼編輯并發(fā)送短信。一對(duì)多短信收件人可以選擇多個(gè),并可以自主選擇是否自動(dòng)添加稱(chēng)謂以及在短信的哪個(gè)地方添加稱(chēng)謂。編輯草稿已選定聯(lián)系人,并編輯過(guò)內(nèi)容的短信如果沒(méi)有馬上發(fā)送,需要存為草稿。
24、自動(dòng)回復(fù)在設(shè)置自動(dòng)回復(fù)狀態(tài)后,收到有聯(lián)系人的短信時(shí),自動(dòng)給予其回復(fù),并且回復(fù)內(nèi)容可以被用戶(hù)自定義。語(yǔ)音發(fā)短信用戶(hù)可以通過(guò)語(yǔ)音新建一條短信,或者對(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è)置、語(yǔ)音發(fā)短信設(shè)置、自動(dòng)回復(fù)設(shè)置。(見(jiàn)圖2.4)圖2.4系統(tǒng)設(shè)置功能用例圖是否在通知欄預(yù)覽信息通過(guò)設(shè)置可以控制在收到短信時(shí),是否需要在通知欄顯示相應(yīng)的消息。語(yǔ)音發(fā)短信設(shè)置用戶(hù)可以自主設(shè)置語(yǔ)音識(shí)別時(shí)間和語(yǔ)言參數(shù)。自動(dòng)回復(fù)設(shè)置是否開(kāi)啟自動(dòng)回復(fù)以及要用于
25、回復(fù)的短語(yǔ),系統(tǒng)中自帶一些常用的,也支持用戶(hù)自己添加新的。賬號(hào)相關(guān)模塊賬號(hào)相關(guān)的用例圖分為注冊(cè)、登錄、注銷(xiāo)、手機(jī)號(hào)身份驗(yàn)證四部分。(見(jiàn)圖2.5)圖2.5賬號(hào)相關(guān)功能用例圖注冊(cè)用戶(hù)可以通過(guò)手機(jī)號(hào)進(jìn)行注冊(cè),設(shè)置密碼,并進(jìn)行手機(jī)號(hào)驗(yàn)證。登錄用戶(hù)可以通過(guò)已注冊(cè)的手機(jī)號(hào)和密碼信息進(jìn)行登錄操作。注銷(xiāo)已登錄的用戶(hù)可以進(jìn)行注銷(xiāo)操作,取消登錄狀態(tài)。手機(jī)號(hào)身份驗(yàn)證用戶(hù)在注冊(cè)的時(shí)候需要通過(guò)獲取并輸入驗(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è)部分。(見(jiàn)圖2.6)圖2.6云備份功能用例圖聯(lián)系人云備份用戶(hù)可以將系統(tǒng)的聯(lián)
26、系人數(shù)據(jù)全部保存到服務(wù)器中,并與賬號(hào)綁定。聯(lián)系人數(shù)據(jù)恢復(fù)聯(lián)系人可以從遠(yuǎn)程服務(wù)器中將之前備份過(guò)的聯(lián)系人數(shù)據(jù)恢復(fù)到手機(jī)上。短信云備份用戶(hù)可以將系統(tǒng)的短信數(shù)據(jù)全部保存到服務(wù)器中,并與賬號(hào)綁定。短信數(shù)據(jù)恢復(fù)聯(lián)系人可以從遠(yuǎn)程服務(wù)器中將之前備份過(guò)的短信數(shù)據(jù)恢復(fù)到手機(jī)上。日程相關(guān)模塊日程的用例包括一鍵生成日程、查看日程列表、處理日程三個(gè)部分。(見(jiàn)圖2.7)圖2.7日程功能用例圖一鍵生成日程用戶(hù)可以對(duì)帶有日程信息的短信進(jìn)行操作,直接生成一個(gè)對(duì)應(yīng)的日程安排,保存到系統(tǒng)日歷應(yīng)用中。查看日程列表用戶(hù)可以查看自己生成的所有日程,日程以一個(gè)較友好的方式進(jìn)行展示,如日程類(lèi)別,時(shí)間等等。處理日程用戶(hù)可以自主修改、刪除已有的
27、日程。聯(lián)系人分享模塊聯(lián)系人分享模塊的用例圖如下,包括生成二維碼、分享二維碼、掃描二維碼、導(dǎo)入聯(lián)系人四個(gè)部分。(見(jiàn)圖2.8)圖2.8聯(lián)系人分享功能用例圖生成二維碼用戶(hù)可以自主選擇要分享的聯(lián)系人,然后設(shè)置分享密碼,即可生成一個(gè)相應(yīng)的二維碼,二維碼中綁定了要分享的聯(lián)系人相應(yīng)的數(shù)據(jù)文件地址。分享二維碼用戶(hù)可以將生成的二維碼分享給其他用戶(hù),比如QQ好友、微信朋友圈、微博等。掃描二維碼用戶(hù)可以通過(guò)使用App內(nèi)的掃描二維碼功能,掃描其他用戶(hù)分享給他的二維碼,識(shí)別出其包含的聯(lián)系人文件地址信息。導(dǎo)入聯(lián)系人在獲取地址信息之后,用戶(hù)可以選擇將對(duì)應(yīng)的聯(lián)系人進(jìn)行導(dǎo)入,保存到手機(jī)中。在線(xiàn)即時(shí)通訊模塊在線(xiàn)即時(shí)通訊的用例圖如
28、下,包括收消息、發(fā)消息、消息保存為短信三個(gè)部分。(見(jiàn)圖2.9)圖2.9在線(xiàn)通訊功能用例圖發(fā)消息如果對(duì)方也在使用同一個(gè)App,且在線(xiàn),則通過(guò)網(wǎng)絡(luò)發(fā)送消息給對(duì)方,而不是通過(guò)移動(dòng)通信商。收消息如果用戶(hù)和發(fā)消息方同時(shí)在線(xiàn),則用戶(hù)收到的消息是來(lái)自對(duì)方網(wǎng)絡(luò)發(fā)送的,而不是對(duì)方通過(guò)移動(dòng)通信商發(fā)送的短信。消息保存為短信無(wú)論是收到的網(wǎng)絡(luò)消息還是發(fā)出去的網(wǎng)絡(luò)消息,最后都保存到短信數(shù)據(jù)庫(kù)中,作為數(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)定性需求:用戶(hù)在使用本系統(tǒng)的過(guò)程中,系統(tǒng)需要保持較好的穩(wěn)定性,穩(wěn)定率在99%以上。安全性需求:用戶(hù)在使用本系統(tǒng)的時(shí)候,需要保證用戶(hù)數(shù)據(jù)的完整性、保密性。兼容性需求:本系統(tǒng)需要兼容Android 4.2到6.0原生系統(tǒng)與主流手機(jī)廠(chǎng)商的定制系統(tǒng)。易用性需求:系統(tǒng)設(shè)計(jì)需符合移動(dòng)應(yīng)用開(kāi)發(fā)設(shè)計(jì)規(guī)范,保證用戶(hù)使用起來(lái)沒(méi)有疑惑,操作順暢。系統(tǒng)設(shè)計(jì) 系統(tǒng)設(shè)計(jì)原則針對(duì)該系統(tǒng),在項(xiàng)目設(shè)計(jì)過(guò)程中考慮了易用
30、性、可維護(hù)性和可擴(kuò)展性、可修改性這幾個(gè)原則。5易用性該系統(tǒng)面對(duì)的用戶(hù)是安卓原生短信應(yīng)用提供的服務(wù)不夠滿(mǎn)意的群體,所以要想讓用戶(hù)使用系統(tǒng)的時(shí)候感到好用,必須在系統(tǒng)設(shè)計(jì)時(shí)考慮系統(tǒng)的易用性。系統(tǒng)應(yīng)建立使用友好、簡(jiǎn)潔明快的用戶(hù)界面,在操作方面更簡(jiǎn)單、直觀(guān)、易于理解。6具體可表現(xiàn)為:系統(tǒng)中的交互設(shè)計(jì)需符合Android開(kāi)發(fā)Material Design規(guī)范,配色統(tǒng)一,交互按鈕設(shè)置合理到位;系統(tǒng)使用的背景和貼圖與上下文語(yǔ)義匹配;系統(tǒng)功能流程節(jié)奏明了、不冗余;用戶(hù)易發(fā)現(xiàn)要使用的功能的入口。可維護(hù)性和可擴(kuò)展性整體系統(tǒng)上采用CS架構(gòu),把服務(wù)端與客戶(hù)端分開(kāi),各部分各司其職。而在客戶(hù)端的系統(tǒng)設(shè)計(jì)上需考慮開(kāi)發(fā)中不斷迭
31、代加入的新功能和老功能的修改,所以架構(gòu)設(shè)計(jì)上采用傳統(tǒng)的MVC三層模式。該三層模式的合理使用,可以讓使數(shù)據(jù)層、控制層、表現(xiàn)層的代碼互相分開(kāi),便于控制。從而加強(qiáng)了系統(tǒng)的可維護(hù)性和可擴(kuò)展性。7 可修改性該系統(tǒng)的設(shè)計(jì)層次比較明確,各層次間有統(tǒng)一的易于理解的接口,便于開(kāi)發(fā)人員的理解和后期修改。編碼過(guò)程中需有必要的注釋?zhuān)瘮?shù)名和變量名等直接明了,語(yǔ)義明確。同時(shí)函數(shù)編寫(xiě)粒度大小適中,將一個(gè)大功能盡量分解為各個(gè)小的步驟函數(shù)以方便重構(gòu)操作。 功能模塊設(shè)計(jì)系統(tǒng)分為手機(jī)APP客戶(hù)端和網(wǎng)站服務(wù)端兩大部分。手機(jī)APP客戶(hù)端主要分為發(fā)短信模塊、收短信模塊、設(shè)置模塊、云備份模塊、賬號(hào)操作模塊、短信其他操作模塊、聯(lián)系人分享模
32、塊、日程管理模塊、在線(xiàn)即時(shí)通訊模塊。(見(jiàn)圖3.1)圖3.1 客戶(hù)端功能結(jié)構(gòu)圖網(wǎng)站端只是一個(gè)輔助使用的部分,所以較為簡(jiǎn)單,只分為賬號(hào)登錄模塊、Excel文件上傳模塊。 系統(tǒng)物理架構(gòu)設(shè)計(jì)系統(tǒng)總共涉及了手機(jī)APP、網(wǎng)頁(yè)端、自主服務(wù)器、極光推送服務(wù)器四部分。(見(jiàn)圖3.2)網(wǎng)頁(yè)端是用戶(hù)登錄和上傳EXCEL聯(lián)系人文件的平臺(tái),方便用戶(hù)在PC電腦上工作使用。手機(jī)APP是用戶(hù)平常產(chǎn)生大部分操作的地方,給予用戶(hù)包括短信收發(fā),數(shù)據(jù)分享,數(shù)據(jù)備份等主要的功能。極光推送服務(wù)器屬于第三方的服務(wù)器,通過(guò)接口調(diào)用,向該服務(wù)器發(fā)送請(qǐng)求,可以使用極光推送提供的通知推送和即時(shí)通訊功能。自主服務(wù)器是保存用戶(hù)數(shù)據(jù)和處理用戶(hù)請(qǐng)求的地方,
33、可以將用戶(hù)移動(dòng)端和網(wǎng)頁(yè)端產(chǎn)生的請(qǐng)求進(jìn)行集中處理,并保存進(jìn)數(shù)據(jù)庫(kù)。 圖3.2 系統(tǒng)物理架構(gòu)圖 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)的使用上,由于本系統(tǒng)部分是基于Android短信功能的二次開(kāi)發(fā),且對(duì)系統(tǒng)聯(lián)系人有一定的操作,所以使用了安卓系統(tǒng)自帶的部分?jǐn)?shù)據(jù)庫(kù)。安卓數(shù)據(jù)庫(kù)類(lèi)型是SQLite,為一個(gè)輕量級(jí)的數(shù)據(jù)庫(kù),實(shí)現(xiàn)了基礎(chǔ)關(guān)系型數(shù)據(jù)庫(kù)的大部分功能。安卓系統(tǒng)聯(lián)系人數(shù)據(jù)庫(kù)首先是ContactsContact.Data表,該表保存了MimeTypeID和RawContactID。這兩個(gè)Id的使用可以將data表和raw_contacts表聯(lián)系起來(lái)。而聯(lián)系人的所有專(zhuān)屬數(shù)據(jù)保存在列data1至data15中,各列中保存的內(nèi)容根據(jù)
34、MimeTypeID的不同而不同。如保存號(hào)碼(MimeTypeID=5)的那行數(shù)據(jù)中,data1列保存號(hào)碼,data2列保存號(hào)碼類(lèi)型(手機(jī)號(hào)碼/家庭號(hào)碼/工作號(hào)碼等)。8見(jiàn)表3.1。表3.1 Data數(shù)據(jù)表字段名類(lèi)型描述備注_idINTEGER PRIMARY_KEY行idmimetype_idINTEGER當(dāng)前行保存的mimetype類(lèi)型的id。如1為郵箱;2聊天賬號(hào);3住址;4圖片;5電話(huà)號(hào)碼;6姓名等 raw_contact_idINTEGERraw_contacts表的_iddata1 到data15TEXT通用數(shù)據(jù)列(保存著聯(lián)系人的信息,聯(lián)系人名稱(chēng)、電話(huà)號(hào)碼等)。ContactsCo
35、ntact.Contacts表,該表保存了所有的手機(jī)聯(lián)系人。該表保存了聯(lián)系人的ContactID、聯(lián)系次數(shù)、最后一次聯(lián)系的時(shí)間、是否含有號(hào)碼等信息。910見(jiàn)表3.2。表3.2 Conatct數(shù)據(jù)表字段名類(lèi)型描述備注_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)建過(guò)的手機(jī)聯(lián)系人。該表保存了聯(lián)系人的RawContactID、ContactID、顯示的名字、用于排序的漢語(yǔ)拼音等信息。見(jiàn)表3.3。表3.3 RawConatcts數(shù)據(jù)表字段名類(lèi)型描述備注_idINTEGER行id contact_idINTEGERcontacts 表中的_iddisplay_nameTEXT聯(lián)系人顯示名稱(chēng)它可能是電子郵件地址,如果聯(lián)系人顯示名稱(chēng)是不可用display_name_altTEXT聯(lián)系人顯示名稱(chēng)的替代表示如西方名字“名
37、在前”而不是 “姓在前”。soft_keyTEXT排序的關(guān)鍵考慮賬戶(hù)中語(yǔ)言環(huán)境,按地址簿中的顯示名稱(chēng)進(jìn)行排序。soft_key_altTEXT排序鍵基于全名的拼音Mimetypes表,該表定義了所有的MimeTypeID,即聯(lián)系人的各個(gè)字段的唯一標(biāo)志。見(jiàn)表3.4。表3.4 Mimetupes數(shù)據(jù)表字段名類(lèi)型描述備注_idINTEGER行id與data表中的mimetype_id對(duì)應(yīng)mimetypeTEXT數(shù)據(jù)的類(lèi)型phone_lookup表,該表用來(lái)聯(lián)系data表與RawContact表。見(jiàn)表3.5。表3.5 Phone_lookup數(shù)據(jù)表字段名類(lèi)型描述備注data_idINTEGERdata
38、對(duì)應(yīng)的id通過(guò)data_id可以找到 data表中相對(duì)的數(shù)據(jù)。raw_contact_idINTEGERraw_contact對(duì)應(yīng)的id通過(guò)id可找到 raw_contact表中相對(duì)的數(shù)據(jù)安卓系統(tǒng)短信數(shù)據(jù)庫(kù)canonical_addresses表,該表用來(lái)保存每個(gè)短信會(huì)話(huà)對(duì)應(yīng)的多個(gè)發(fā)送或者接收的號(hào)碼。見(jiàn)表3.6。表3.6 Canoical_addressed數(shù)據(jù)表字段名類(lèi)型描述備注_idINTEGER PRIMARY_KEY主鍵ID系統(tǒng)生成addressTEXT發(fā)送或接收的電話(huà)號(hào)碼Sms短信表,該表用來(lái)保存單條短信記錄相關(guān)數(shù)據(jù)。每條記錄都存儲(chǔ)了對(duì)應(yīng)短信記錄的號(hào)碼、時(shí)間、狀態(tài)、內(nèi)容等信息。見(jiàn)表3
39、.7。表3.7 Sms數(shù)據(jù)表字段名類(lèi)型描述備注_idINTEGER PRIMARY_KEY主鍵ID系統(tǒng)生成thread_idINTEGER對(duì)應(yīng)會(huì)話(huà)的id外鍵addressTEXT對(duì)方短信號(hào)碼personINTEGER存在電話(huà)薄里的名字不存在的為空dateINTEGER日期protocolINTEGER協(xié)議發(fā)送短信為空,收到為0readINTEGER已讀未讀已讀為1,未讀為0statusINTEGER短信狀態(tài)如果是-1,則表明該短信沒(méi)有被收到typeINTEGER短信類(lèi)型發(fā)短信為2,收到短信為1subjectTEXT主題bodyTEXT短信內(nèi)容lockedINTEGER是否鎖掉了。0為未鎖,1已
40、鎖sim_idINTEGERsim卡idThreads會(huì)話(huà)表,每個(gè)不同的號(hào)碼對(duì)應(yīng)一個(gè)不同的對(duì)話(huà),而會(huì)話(huà)表就是存儲(chǔ)會(huì)話(huà)數(shù)據(jù)的結(jié)構(gòu)。該表保存對(duì)應(yīng)會(huì)話(huà)的短信總條數(shù)、創(chuàng)建日期、最新一條的短信內(nèi)容等數(shù)據(jù)。見(jiàn)表3.8。表3.8 Threads數(shù)據(jù)表字段名類(lèi)型描述備注_idINTEGER PRIMARY_KEY主鍵ID系統(tǒng)生成dateINTEGER日期會(huì)話(huà)創(chuàng)建的日期message_countINTEGER短信總條數(shù)recipient_idsTEXTcanonical_addresses的主鍵外鍵snippetTEXT在最前面顯示的短信snippet_csINTEGER編碼格式readINTEGER是否已讀已
41、讀為1,未讀為0typeINTEGER短信類(lèi)型push的短信為0errorINTEGER是否有錯(cuò)誤有錯(cuò)誤為1,沒(méi)有為0has_attachmentINTEGER是否有附件沒(méi)有為1,有為0服務(wù)端數(shù)據(jù)庫(kù)服務(wù)端數(shù)據(jù)目前共5張表,分為User表、Sms_file表、Shared_contact_file表、Excel_file表、Contact_file表五張表。User表為存儲(chǔ)用戶(hù)基本信息的表,而其他表主要用于存儲(chǔ)用戶(hù)在Web端和手機(jī)客戶(hù)端產(chǎn)生的各種操作,如備份、文件上傳,包括了操作時(shí)間,操作對(duì)象等信息。數(shù)據(jù)庫(kù)的各張表之間的關(guān)系ER圖如下,見(jiàn)圖3.5。用戶(hù)與備份表之間為1對(duì)1的關(guān)系,而用戶(hù)與聯(lián)系人分
42、析文件和Excel工作文件之間是1對(duì)N的關(guān)系。圖3.3 服務(wù)端數(shù)據(jù)庫(kù)ER圖User用戶(hù)表,保存了用戶(hù)信息相關(guān)的數(shù)據(jù),包括手機(jī)號(hào),密碼,昵稱(chēng)等關(guān)鍵數(shù)據(jù)。11見(jiàn)圖3.9。表3.9 User數(shù)據(jù)表字段名類(lèi)型描述備注Idint(20)用戶(hù)主鍵PhoneNumbervarchar(20)用戶(hù)手機(jī)號(hào)Passwordvarchar(32)用戶(hù)密碼UserNamevarchar(20)用戶(hù)昵稱(chēng)EmailAaddressvarchar(20)郵箱地址RegisterTimedatetime注冊(cè)時(shí)間IsOnLineint(1)是否在線(xiàn)1為在線(xiàn),0為不在線(xiàn)Sms_file表,保存了用戶(hù)云備份上的操作記錄,保存了云備
43、份的短信文件位置,短信數(shù)量等數(shù)據(jù)。見(jiàn)圖3.10。表3.10 Sms_file數(shù)據(jù)表字段名類(lèi)型描述備注Idint(20)唯一標(biāo)識(shí)User_Idint(20)用戶(hù)Id外鍵Sms_File_Locationvarchar(100)短信文件位置Sms_Countint(8)短信數(shù)量Newest_Upload_Timedatetime最新一次上傳時(shí)間Shared_contact_file表,保存用戶(hù)進(jìn)行聯(lián)系人分享操作的操作記錄,包括文件位置,下載所需要的密碼等信息。見(jiàn)圖3.11。表3.11 Shared_contact_file數(shù)據(jù)表字段名類(lèi)型描述備注Idint(20)唯一標(biāo)識(shí)User_Idint(11
44、)用戶(hù)IdContact_File_Locationvarchar(100)聯(lián)系人文件位置外鍵Newest_Upload_Timedatetime最新一次上傳時(shí)間Extract_Download_Passwordvarchar(10)下載需要的密碼默認(rèn)為6位Download_Timesint(11)下載次數(shù)Excel_file表,保存用戶(hù)在web端上傳的excel格式聯(lián)系人的操作的記錄,包括文件位置,上傳時(shí)間等信息。見(jiàn)圖3.12。表3.12 Excel_file數(shù)據(jù)表字段名類(lèi)型描述備注Idint(20)唯一標(biāo)識(shí)User_Idint(20)用戶(hù)Id外鍵Excel_File_Locationvar
45、char(100)聯(lián)系人文件位置Newest_Upload_Timedatetime最新一次上傳時(shí)間Contact_file表,保存用戶(hù)進(jìn)行聯(lián)系人備份操作的操作記錄,包括文件位置,聯(lián)系人數(shù)量等。見(jiàn)圖3.13。表3.13 Contact_file數(shù)據(jù)表字段名類(lèi)型描述備注Idint(20)唯一標(biāo)識(shí)User_Idint(20)用戶(hù)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è)流程是用戶(hù)先輸入自己的手機(jī)號(hào),并設(shè)置密碼,在確
46、定無(wú)誤后,向驗(yàn)證碼服務(wù)器發(fā)出獲取驗(yàn)證碼請(qǐng)求,然后將得到的驗(yàn)證碼再返回給服務(wù)器進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)后即正式提交注冊(cè)請(qǐng)求。用戶(hù)注冊(cè)過(guò)程泳道圖見(jiàn)圖3.6。圖3.4 用戶(hù)注冊(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ā)送流程是在用戶(hù)編輯好短信內(nèi)容和對(duì)方號(hào)碼后,首先通過(guò)服務(wù)器對(duì)收件人的在線(xiàn)與否狀態(tài)進(jìn)行查詢(xún)。如果在線(xiàn),則通過(guò)服務(wù)器網(wǎng)絡(luò)發(fā)送消息給對(duì)方,并通過(guò)本地的廣播接收器獲取反饋信息。如果不在線(xiàn),則通過(guò)正常的電信運(yùn)營(yíng)商的短信服務(wù)給對(duì)方發(fā)送短信。短信發(fā)送的順序圖見(jiàn)圖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)廣播接收器收到消息廣播后開(kāi)始的。系統(tǒng)首先會(huì)調(diào)用數(shù)據(jù)庫(kù)工具,將消息數(shù)據(jù)進(jìn)行保存,同時(shí)反饋給用戶(hù)頁(yè)面進(jìn)行刷新。另外同時(shí)也會(huì)根據(jù)系統(tǒng)設(shè)置中是否開(kāi)啟了通知欄,決定是否給用戶(hù)發(fā)送通知欄上通知。兩步操作是同時(shí)進(jìn)行的。該過(guò)程順序圖見(jià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();短信云備份短信云備份的流程是在用戶(hù)發(fā)出備份請(qǐng)求后,先從數(shù)據(jù)庫(kù)中取出所有的短信數(shù)據(jù),再按照序列化的方法,通過(guò)XML讀寫(xiě)類(lèi)寫(xiě)到XML文件中,并將文件數(shù)據(jù)傳遞給文件上傳類(lèi)。文件
51、上傳類(lèi)在獲取到用戶(hù)賬戶(hù)信息后,即將包括用戶(hù)信息和文件數(shù)據(jù)的所有的數(shù)據(jù)通過(guò)請(qǐng)求發(fā)送給服務(wù)器。12服務(wù)器在處理和保存文件后,即將處理結(jié)果反饋給系統(tǒng),并刷新用戶(hù)頁(yè)面。見(jiàn)圖3.9。圖3.7 短信云備份順序圖短信數(shù)據(jù)恢復(fù)短信恢復(fù)流程是在用戶(hù)發(fā)出恢復(fù)請(qǐng)求后,首先根據(jù)賬號(hào)信息生成一個(gè)短信備份文件的URL地址,然后通過(guò)文件下載工具將該地址的文件進(jìn)行下載。下載到本地后,通過(guò)XML讀寫(xiě)類(lèi)將文件中數(shù)據(jù)讀取為短信序列化對(duì)象,最后插入到數(shù)據(jù)庫(kù)中。見(jiàn)圖3.10。圖3.8 短信數(shù)據(jù)恢復(fù)順序圖聯(lián)系人分享聯(lián)系人分享的流程,是在用戶(hù)選擇好要分享的聯(lián)系人數(shù)據(jù)后,設(shè)置下載密碼,即會(huì)將所有的聯(lián)系人數(shù)據(jù)對(duì)象通過(guò)vcard文件工具寫(xiě)入到本
52、地vcf格式的文件中。然后調(diào)用文件上傳工具,將所有的文件數(shù)據(jù)上傳到服務(wù)器中個(gè)人賬號(hào)下。服務(wù)器在接收到數(shù)據(jù)后,即會(huì)將該文件的服務(wù)器端存儲(chǔ)的URL生成并返回給用戶(hù),最后在本地通過(guò)二維碼工具生成一個(gè)二維碼,并給用戶(hù)以分享的操作。見(jiàn)圖3.11。圖3.9 聯(lián)系人分享順序圖掃描二維碼導(dǎo)入聯(lián)系人掃描二維碼導(dǎo)入聯(lián)系人的系統(tǒng)流程是在用戶(hù)掃描或者直接從相冊(cè)中獲取其他人分享給他的二維碼后,通過(guò)解析得到二維碼包含的文件基礎(chǔ)URL數(shù)據(jù)信息。在輸入下載密碼,系統(tǒng)會(huì)將其組裝成完整的文件URL地址。然后通過(guò)下載工具,從服務(wù)器中將文件下載下來(lái)。在獲取到完整文件數(shù)據(jù)后,通過(guò)調(diào)用vcard文件工具,將文件中的聯(lián)系人數(shù)據(jù)導(dǎo)出為特定的
53、聯(lián)系人對(duì)象,然后通過(guò)聯(lián)系人數(shù)據(jù)操作類(lèi)將對(duì)象保存到聯(lián)系人數(shù)據(jù)庫(kù)中。見(jiàn)圖3.12。圖3.10 掃描二維碼,導(dǎo)入聯(lián)系人順序圖語(yǔ)音發(fā)短信語(yǔ)音發(fā)短信流程是在用戶(hù)輸入語(yǔ)音后,訊飛的SDK首先會(huì)將語(yǔ)音數(shù)據(jù)發(fā)送到訊飛服務(wù)器,并將解析結(jié)果以json格式返回給客戶(hù)端。在解析出返回的數(shù)據(jù)后,即對(duì)聯(lián)系人的名字進(jìn)行查詢(xún)獲取實(shí)際的電話(huà)號(hào)碼,生成一個(gè)實(shí)際的短信發(fā)送任務(wù)。見(jiàn)圖3.13。圖3.11 短信發(fā)送注冊(cè)順序圖如輸入語(yǔ)音為“發(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ì)是用戶(hù)在選擇好要查詢(xún)的短信會(huì)話(huà)后,后臺(tái)即會(huì)根據(jù)該會(huì)話(huà)id,查找出所有對(duì)應(yīng)的回復(fù)記錄。在結(jié)果統(tǒng)計(jì)工具處理之后,將結(jié)果返回給前臺(tái)進(jìn)行顯示,并可以設(shè)置一個(gè)定時(shí)二次發(fā)送的任務(wù)。見(jiàn)圖3.14。圖3.12 群發(fā)回復(fù)自動(dòng)統(tǒng)計(jì)順序圖 系統(tǒng)關(guān)鍵技術(shù) 多線(xiàn)程下載技術(shù)多線(xiàn)程下載技術(shù)是在從服務(wù)器中下載文件時(shí)使用,通過(guò)同時(shí)開(kāi)啟多個(gè)線(xiàn)程,可以分批從服務(wù)器中獲取文件數(shù)據(jù),加快文件下載速度。這里給出了一個(gè)下載線(xiàn)程的數(shù)據(jù)結(jié)構(gòu)類(lèi)圖。(見(jiàn)圖4.1)圖4.1 多線(xiàn)程下
55、載線(xiàn)程類(lèi)圖下載線(xiàn)程類(lèi)繼承自系統(tǒng)線(xiàn)程類(lèi),同時(shí)保存了下載文件的URL地址,下載開(kāi)始點(diǎn),需要下載文件的大小,保存數(shù)據(jù)的分割文件和已下載的文件長(zhǎng)度。該類(lèi)通過(guò)構(gòu)造函數(shù)初始化相應(yīng)的下載參數(shù),然后調(diào)用run函數(shù)開(kāi)啟線(xiàn)程的工作,進(jìn)行下載,最后將各個(gè)線(xiàn)程對(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ù)庫(kù)查詢(xún),文件讀寫(xiě)等耗時(shí)操作時(shí),常需要單獨(dú)開(kāi)一個(gè)線(xiàn)程在后臺(tái)去運(yùn)行,并將結(jié)果返回給主線(xiàn)程,再反饋到用戶(hù)界面上。所以在構(gòu)建本系統(tǒng)時(shí),就需要大量使用異步任務(wù)處理技術(shù)。而在Android開(kāi)發(fā)中,對(duì)應(yīng)的技術(shù)
56、之一就是使用線(xiàn)程加Handler消息機(jī)制。在新開(kāi)一條子線(xiàn)程的同時(shí),也將主線(xiàn)程的消息處理Handler傳遞進(jìn)去。在線(xiàn)程正常結(jié)束或者出現(xiàn)異常時(shí),由Handler發(fā)出對(duì)應(yīng)不同的消息到主線(xiàn)程的消息隊(duì)列中,再由主線(xiàn)程的Looper去從消息隊(duì)列中取出對(duì)應(yīng)的消息給Handler進(jìn)行處理,從而達(dá)到跨進(jìn)程通信的目的。13(見(jiàn)圖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ī)制,通過(guò)構(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)首頁(yè)系統(tǒng)首頁(yè)為短信普通會(huì)話(huà)顯示頁(yè)面,展示了會(huì)話(huà)最新的時(shí)間,對(duì)應(yīng)的聯(lián)系人姓名,最新一條短信信息的預(yù)覽。其中如果是來(lái)自普通號(hào)碼但是為陌生聯(lián)系人的短信就會(huì)被標(biāo)記為紅色的陌標(biāo)識(shí)提醒用戶(hù)注意。(見(jiàn)圖5.1)而通過(guò)首頁(yè)可以進(jìn)入到專(zhuān)門(mén)存放服務(wù)類(lèi)信息的服務(wù)短信頁(yè)。這里存放了所有來(lái)自網(wǎng)絡(luò)服務(wù)號(hào)碼的短信會(huì)話(huà),且擁有圖標(biāo)匹配功能,對(duì)于能夠識(shí)別出來(lái)的常見(jiàn)對(duì)象,能夠自動(dòng)匹配上對(duì)應(yīng)的Logo圖標(biāo),方便用戶(hù)更容易識(shí)別出。(見(jiàn)圖5.2) 圖5.1 普通會(huì)話(huà)頁(yè)面
58、圖5.2 服務(wù)會(huì)話(huà)頁(yè)面 系統(tǒng)設(shè)置與個(gè)人中心用戶(hù)可以滑動(dòng)或者點(diǎn)擊進(jìn)入首頁(yè)上的導(dǎo)航欄,導(dǎo)航欄上有相應(yīng)的各個(gè)設(shè)置和小功能的入口,也可以在導(dǎo)航欄這里進(jìn)行賬號(hào)的注銷(xiāo)操作。向左滑動(dòng)或者點(diǎn)擊回到首頁(yè)即可恢復(fù)。(見(jiàn)圖5.3) 圖5.3 導(dǎo)航欄頁(yè)面 圖5.4 設(shè)置列表頁(yè)面目前系統(tǒng)提供了自動(dòng)回復(fù)設(shè)置、通知欄設(shè)置、語(yǔ)音發(fā)短信設(shè)置幾種用戶(hù)可自定義的參數(shù)設(shè)置。(見(jiàn)圖5.4)用戶(hù)可以自主定義是否開(kāi)啟該功能,該功能里面的具體參數(shù)是怎么樣的。如自動(dòng)回復(fù)設(shè)置開(kāi)關(guān)和回復(fù)短語(yǔ)(見(jiàn)圖5.5) 圖5.5 自動(dòng)回復(fù)設(shè)置頁(yè)面 圖5.6 文本編輯短信頁(yè)面新建短信用戶(hù)可以在進(jìn)入新建短信頁(yè)面(見(jiàn)圖5.6),通過(guò)選擇聯(lián)系人作為收件人(見(jiàn)圖5.7)
59、,并編輯短信內(nèi)容,即可生成一個(gè)新的短信發(fā)送任務(wù)。選擇的聯(lián)系人會(huì)以標(biāo)簽的形式展現(xiàn)出來(lái),而發(fā)送按鈕只有在聯(lián)系人和發(fā)送內(nèi)容均合法時(shí)才會(huì)顯示出來(lái)。 圖5.7 選擇聯(lián)系人頁(yè)面 圖5.8 語(yǔ)音發(fā)短信頁(yè)面語(yǔ)音發(fā)短信用戶(hù)在頁(yè)面上可以看到語(yǔ)音發(fā)短信的示例和操作要領(lǐng),以迅速學(xué)會(huì)如何使用本軟件進(jìn)行語(yǔ)音發(fā)短信操作。同時(shí)頁(yè)面給用戶(hù)提供了上傳聯(lián)系人按鈕,將本地的聯(lián)系人數(shù)據(jù)上傳到訊飛的服務(wù)器中提供參考,保證語(yǔ)音識(shí)別效果更準(zhǔn)確。(見(jiàn)圖5.8)而在語(yǔ)音識(shí)別結(jié)束后,系統(tǒng)會(huì)根據(jù)識(shí)別結(jié)果自動(dòng)生成一個(gè)發(fā)短信任務(wù)。(見(jiàn)圖5.9) 圖5.9語(yǔ)音發(fā)短信結(jié)果頁(yè)面 圖5.10 分享聯(lián)系人頁(yè)面 分享聯(lián)系人頁(yè)面用戶(hù)在選擇號(hào)要分享的聯(lián)系人后,通過(guò)對(duì)話(huà)
60、框設(shè)置6位下載密碼,點(diǎn)擊確定后即會(huì)生成一個(gè)二維碼。用戶(hù)可以通過(guò)分享將二維碼分享給同學(xué)好友。(見(jiàn)圖5.11) 圖5.11 設(shè)置密碼頁(yè)面 圖5.12 二維碼生成頁(yè)面 掃描二維碼 用戶(hù)可以通過(guò)本軟件掃描二維碼,獲取其中的數(shù)據(jù),或者直接通過(guò)選擇系統(tǒng)中已存在的圖片進(jìn)行識(shí)別。在掃描二維碼的過(guò)程中也支持開(kāi)啟閃光燈功能。(見(jiàn)圖5.14) 圖5.13 分享二維碼頁(yè)面 圖5.14 掃描二維碼頁(yè)面 云備份用戶(hù)可以在聯(lián)系人和短信云備份和恢復(fù)頁(yè)面進(jìn)行備份或者恢復(fù)操作,并會(huì)同時(shí)顯示出本地的數(shù)據(jù)量和遠(yuǎn)程服務(wù)器上的數(shù)據(jù)量。(見(jiàn)圖5.15和圖5.16) 圖5.15 聯(lián)系人云備份頁(yè)面 圖5.16 短信恢復(fù)頁(yè)面登錄與群發(fā)回復(fù)用戶(hù)可
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 42596.4-2024機(jī)床安全壓力機(jī)第4部分:氣動(dòng)壓力機(jī)安全要求
- 技術(shù)經(jīng)濟(jì)學(xué)課件-不確定性分析
- 妊娠合并甲狀腺功能減退的臨床護(hù)理
- 類(lèi)丹毒的臨床護(hù)理
- 《機(jī)械設(shè)計(jì)基礎(chǔ)》課件-第10章
- 銀屑病的臨床護(hù)理
- 《證券經(jīng)紀(jì)人培訓(xùn)》課件
- JJF(陜) 010-2019 標(biāo)準(zhǔn)厚度塊校準(zhǔn)規(guī)范
- 《計(jì)算器定時(shí)器》課件
- 制定圖文并茂的工作計(jì)劃
- 工程倫理案例分析-毒跑道事件
- 股東損害公司債權(quán)人利益責(zé)任糾紛起訴狀(成功范文)
- 仙桃市自然災(zāi)害救助應(yīng)急預(yù)案操作手冊(cè)
- 《Premiere影視剪輯》課件-基礎(chǔ)篇
- “小哥白尼杯”科普知識(shí)競(jìng)賽題庫(kù)
- 2024名校版人教語(yǔ)文一年級(jí)上冊(cè)《比尾巴》同步練習(xí)含答案
- 人美版初中美術(shù)知識(shí)點(diǎn)匯總八年級(jí)全冊(cè)
- 公路路面畢業(yè)論文中英文資料外文翻譯文獻(xiàn)
- 臨建施工方案1
- 訓(xùn)練及產(chǎn)說(shuō)改鑫瑞發(fā)布會(huì)流程
- 產(chǎn)業(yè)園EPC總承包工程項(xiàng)目施工組織設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論