本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種短信息顯示的方法和裝置。
背景技術(shù):
隨著即時通信、文件傳輸?shù)榷喾N社交通信方式的普及,短信息作為通信工具的功能使用的越來越少。但是其作為企業(yè)與個人之間的信息傳遞卻用的越來越多,例如目前移動終端中很多應用軟件的登錄驗證是通過發(fā)放短信息驗證碼的形式進行驗證的,短信息功能的重要性不言而喻。
雖然短信息功能逐漸的被用于接收驗證碼,但是多數(shù)驗證碼短信息出現(xiàn)接收延遲現(xiàn)象,有時會延遲2-3分鐘。對于登錄驗證要求預設時間的應用程序(例如驗證碼60s內(nèi)有效),導致此次申請短信息驗證碼失效;重新向該應用程序的驗證碼服務器申請下發(fā)驗證碼后,卻一次性收到了兩條驗證碼短信息,極大的影響用戶體驗。
通過分析發(fā)現(xiàn),多數(shù)情況下,驗證碼延遲并非驗證碼服務器下發(fā)驗證碼延遲,而是由于當新短信息到達移動終端底層后,是通過發(fā)送廣播的形式傳遞到上層信息應用。對于廣播來說,如果此時移動終端系統(tǒng)內(nèi)廣播比較頻繁,則會阻塞短信息廣播傳遞,使上層信息應用遲遲收不到該短信息廣播,導致延遲顯示該新短信息。
技術(shù)實現(xiàn)要素:
本發(fā)明的實施例提供一種短信息顯示的方法和裝置,能夠解決上述相關(guān)技術(shù)中由于移動終端系統(tǒng)內(nèi)廣播頻繁而阻塞短信息廣播,導致短信息延遲顯示的問題。
為達到上述目的,本發(fā)明實施例所采用的技術(shù)方案是:
第一方面,提供一種短信息顯示的方法,該方法包括步驟:
將注冊的contentobserver和短信息數(shù)據(jù)庫地址存儲至中間層的service中;
監(jiān)聽短信息數(shù)據(jù)庫狀態(tài);
若短信息數(shù)據(jù)庫狀態(tài)為接收到新短信息時,則從所述service中查詢與所述短信息數(shù)據(jù)庫地址對應的所述contentobserver,以顯示所述新短信息。
第二方面,提供一種短信息顯示的裝置,該裝置包括:
存儲模塊,用于將注冊的contentobserver和短信息數(shù)據(jù)庫地址存儲至中間層的service中;
監(jiān)聽模塊,用于監(jiān)聽短信息數(shù)據(jù)庫狀態(tài);
顯示模塊,用于若短信息數(shù)據(jù)庫狀態(tài)為接收到新短信息時,則從所述service中查詢與所述短信息數(shù)據(jù)庫地址對應的所述contentobserver,以顯示所述新短信息。
第三方面,提供一種移動終端設備,該設備包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)以下步驟,該步驟包括上述第一方面所述的一種短信息顯示的方法。
本發(fā)明實施例提供的技術(shù)方案可以包括以下有益效果:
本發(fā)明實施例提供的一種短信息顯示的方法和裝置,通過將注冊的contentobserver和短信息數(shù)據(jù)庫地址存儲至中間層的service中;然后監(jiān)聽短信息數(shù)據(jù)庫狀態(tài),以判斷短信息數(shù)據(jù)庫是否發(fā)生變化;若短信息數(shù)據(jù)庫狀態(tài)為接收到新短信息時,則從所述service中查詢與所述短信息數(shù)據(jù)庫地址對應的所述contentobserver;進而顯示所述新短信息。
與現(xiàn)有技術(shù)中由于移動終端系統(tǒng)內(nèi)廣播頻繁而阻塞短信息廣播,導致短信息延遲顯示相比,當監(jiān)聽到短信息數(shù)據(jù)庫狀態(tài)為接收到新短信息時,讀取該新短信息內(nèi)容,進而直接在上層信息應用中顯示該新短信息,如此能夠大大縮短從移動終端底層接收到新短信息至上層信息應用顯示新短信息的時間,從而加快上層信息應用顯示新短信息。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1是android系統(tǒng)的短信息接收和顯示流程示意圖。
圖2是本發(fā)明實施例提供的一種短信息顯示的方法流程示意圖。
圖3是本發(fā)明另一實施例提供的一種短信息顯示的方法流程示意圖。
圖4為本發(fā)明實施例提供的一種短信息顯示的裝置的結(jié)構(gòu)示意圖。
圖5為本發(fā)明另一實施例提供的一種短信息顯示的裝置的結(jié)構(gòu)示意圖。
圖6為本發(fā)明實施例提供的一種移動終端設備的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動的前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
圖1是android系統(tǒng)的短信息接收和顯示流程示意圖,參見圖1,當配置有android系統(tǒng)的移動終端底層收到短信息后,會通過發(fā)送短信息廣播傳遞給上層信息應用,該廣播攜帶當前接收到的該短信息。其中,系統(tǒng)向默認信息應用發(fā)送delivery廣播,允許默認信息應用讀寫短信息數(shù)據(jù)庫;而非默認信息應用只能夠接收receiver廣播,允許非默認信息應用只讀短信息數(shù)據(jù)庫。
但是廣播是一種在android系統(tǒng)中廣泛運用的、在應用程序之間傳輸信息的機制,在android系統(tǒng)里有各種各樣的廣播,例如電池的使用狀態(tài)、電話的接收、短信息的接收等都會產(chǎn)生一個廣播,若移動終端系統(tǒng)內(nèi)廣播比較頻繁,則會阻塞短信息廣播傳遞,從而上層信息應用遲遲收不到該短信息廣播。
針對上述由于移動終端系統(tǒng)內(nèi)廣播頻繁而阻塞短信息廣播,導致短信息延遲顯示的問題,本發(fā)明實施例提供一種短信息顯示的方法,應用于移動終端中。通過利用本發(fā)明實施例所提供的方法,能夠大大縮短從移動終端底層接收到新短信息至上層信息應用顯示新短信息的時間,從而加快上層信息應用顯示新短信息,提高用戶體驗效果。
下面結(jié)合附圖對本發(fā)明所述的短信息顯示的方法進行詳細的說明。圖2是本發(fā)明實施例提供的一種短信息顯示的方法流程示意圖,參見圖2,該方法可以包括以下步驟:
步驟s11:將注冊的contentobserver和短信息數(shù)據(jù)庫地址存儲至中間層的service中。
在該步驟中,上層信息應用通過內(nèi)容提供者(contentresolver)注冊contentobserver,并將該contentobserver和短信息數(shù)據(jù)庫地址(uri“content://sms”)存儲至中間層的service中。其中,此處的contentobserver具體指用于監(jiān)聽短信息數(shù)據(jù)庫狀態(tài)是否改變的smsobserver。在中間層的service中,預設有contentobserver和數(shù)據(jù)庫地址的對應關(guān)系表,該對應關(guān)系表中contentobserver與數(shù)據(jù)庫地址是多對一關(guān)系,即通過數(shù)據(jù)庫地址能夠查詢到所有與之關(guān)聯(lián)的contentobserver。
需要說明的是,本發(fā)明不局限于將注冊的contentobserver和短信息數(shù)據(jù)庫地址存儲至中間層的service中。
步驟s12:監(jiān)聽短信息數(shù)據(jù)庫狀態(tài)。
具體的,contentobserver監(jiān)聽短信息數(shù)據(jù)庫的狀態(tài)是否發(fā)生改變,當短信息數(shù)據(jù)庫的狀態(tài)發(fā)生改變時,短信息數(shù)據(jù)庫中會更新短信息記錄。通過contentobserver對短信息數(shù)據(jù)庫的監(jiān)控是原子性的,即只要對短信息數(shù)據(jù)庫的某條短信息記錄作修改(包括接收短信息、發(fā)送短信息、短息消息狀態(tài)改變等)都會被監(jiān)聽到,不存在添加一條短信息數(shù)據(jù)再刪除而contentobserver監(jiān)聽不到的情況。
由于android系統(tǒng)的短信息數(shù)據(jù)庫是按照時間順序降序排列的,所以短信息數(shù)據(jù)庫中第一條短信息記錄就是最新的短信息記錄。在android系統(tǒng)的短信息數(shù)據(jù)庫中,短信息以表的形式進行存儲,具體內(nèi)容如下:
其中,_id:短信息序號;address:通信對象的號碼;person:通信對象在終端中的聯(lián)系人姓名;date:日期;type:類型,1為接收的,2為發(fā)出的;body:短信息內(nèi)容。
步驟s13:若短信息數(shù)據(jù)庫狀態(tài)為接收到新短信息時,則從所述service中查詢與所述短信息數(shù)據(jù)庫地址對應的所述contentobserver,以顯示所述新短信息。
具體的,當從短信息數(shù)據(jù)庫中最新的短信息記錄中查詢type為1時,則確定此時系統(tǒng)接收到新短信息,即短信息數(shù)據(jù)庫狀態(tài)為接收到新短信息。然后調(diào)用notifychange函數(shù)后,進入中間層的service中。通過短信息數(shù)據(jù)庫地址定位,從中間層的service中查詢與該短信息數(shù)據(jù)庫地址對應的contentobserver(即smsobserver)。進而調(diào)用smsobserver的onchange函數(shù),讀取該短信息記錄中body下的新短信息內(nèi)容,并在上層信息應用中顯示該新短信息。
本發(fā)明實施例提供的一種短信息顯示的方法,通過將注冊的contentobserver和短信息數(shù)據(jù)庫地址存儲至中間層的service中;然后監(jiān)聽短信息數(shù)據(jù)庫狀態(tài),以判斷短信息數(shù)據(jù)庫是否發(fā)生變化;若短信息數(shù)據(jù)庫狀態(tài)為接收到新短信息時,則從所述service中查詢與所述短信息數(shù)據(jù)庫地址對應的所述contentobserver;進而顯示所述新短信息。
與現(xiàn)有技術(shù)中由于移動終端系統(tǒng)內(nèi)廣播頻繁而阻塞短信息廣播,導致短信息延遲顯示相比,當監(jiān)聽到短信息數(shù)據(jù)庫狀態(tài)為接收到新短信息時,讀取該新短信息內(nèi)容,進而直接在上層信息應用中顯示該新短信息,如此能夠大大縮短從移動終端modem層接收到新短信息至上層信息應用顯示新短信息的時間,從而加快上層信息應用顯示新短信息。
示例性的,現(xiàn)以加快驗證碼短信息在上層信息應用中顯示為例,對上述方法進行詳細介紹。圖3是本發(fā)明另一實施例提供的一種短信息顯示的方法流程示意圖,參見圖3,該方法包括:
步驟s21:將注冊的smsobserver和短信息數(shù)據(jù)庫地址存儲至中間層的service中。
步驟s22:smsobserver監(jiān)聽短信息數(shù)據(jù)庫狀態(tài)是否發(fā)生改變。
其中,步驟s21和s22同上述圖2所示的步驟s11和s12。
步驟s23:若短信息數(shù)據(jù)庫狀態(tài)發(fā)生改變,則讀取短信息數(shù)據(jù)庫中第一條短信息記錄,以確定短信息數(shù)據(jù)庫狀態(tài)是否為接收到新短信息。
具體的,當從短信息數(shù)據(jù)庫中第一條短信息記錄中查詢type為1時,則確定此時短信息數(shù)據(jù)庫狀態(tài)為接收到新短信息。
步驟s24:若檢測新短信息的發(fā)送方滿足預設條件,則通過新短信息的文本內(nèi)容判斷該新短信息是否為驗證碼短信息。
由于多數(shù)應用程序的登錄驗證有預設時間的要求,例如驗證碼在60s內(nèi)有效,因此需要移動終端快速顯示驗證碼短信息,以使應用程序在預設時間內(nèi)完成登錄驗證過程。
當從短信息數(shù)據(jù)庫中第一條短信息記錄中查詢address滿足預設條件時,例如:預設條件可以為通知號碼,即新短信息的發(fā)送方是106或955開頭的號碼,或其號碼是已知的服務商短號,則查詢body以獲取該新短信息文本內(nèi)容,并對該新短信息文本內(nèi)容進行關(guān)鍵字和/或字符串匹配,以確定該新短信息為驗證碼短信息。例如:新短信息文本內(nèi)容中的關(guān)鍵字可以為“動態(tài)碼”、“校驗碼”“驗證碼”等,字符串可以為6位數(shù)字和/或字母。
需要說明的是,判斷新短信息是否為驗證碼短信息的方式并不局限于采用本實施例所述的方式。
步驟s25:若確定新短信息為驗證碼短信息,則從中間層的service中查詢與所述短信息數(shù)據(jù)庫地址對應的所述smsobserver,以顯示該驗證碼短信息。
在確定接收到的新短信息為驗證碼短信息后,調(diào)用notifychange函數(shù)進入中間層的service中。通過短信息數(shù)據(jù)庫地址定位,從中間層的service中查詢與該短信息數(shù)據(jù)庫地址對應的smsobserver。進而調(diào)用smsobserver的onchange函數(shù),直接在上層信息應用中顯示該驗證碼短信息。
與現(xiàn)有技術(shù)中由于移動終端系統(tǒng)內(nèi)廣播頻繁而阻塞短信息廣播,導致短信息延遲顯示相比,如此能夠縮短從移動終端底層接收到驗證碼短信息至上層信息應用顯示該驗證碼短信息的時間,從而加快上層信息應用顯示該驗證碼短信息,以實現(xiàn)應用程序在預設時間內(nèi)完成登錄驗證過程。
在一具體實施例中,由于驗證碼在預設時間內(nèi)有效,而延遲顯示的驗證碼短信息中的驗證碼會失效,因此失效的驗證碼短信息會影響用戶體驗。在步驟s25之后,該方法還可以包括:
步驟s26:若該驗證碼短信息的顯示時間超過預設時間閾值,則刪除該驗證碼短信息在短信息數(shù)據(jù)庫中對應的短信息記錄。
具體的,當驗證碼短信息顯示時間超過預設時間閾值時,例如:60s,則刪除該驗證碼短信息在短信息數(shù)據(jù)庫中對應的短信息記錄,從而也刪除了上層信息應用中顯示的該驗證碼短信息。通過該步驟,能夠避免上層信息應用中顯示多個驗證碼短信息,節(jié)約移動終端的存儲空間,且使用戶可以快速準確的查找到當前所需的驗證碼短信息,然后提取驗證碼短信息中的驗證碼。
雖然本發(fā)明提供了如上述實施方式或流程圖所述的方法操作步驟,但是基于常規(guī)或者無需創(chuàng)造性的勞動,在所述方法中可以包括更多或者更少的操作步驟。此外,所述方法在邏輯性上不存在必要因果關(guān)系的步驟中,這些步驟的執(zhí)行順序不限于本發(fā)明實施方式中所提供的執(zhí)行順序。
基于同一技術(shù)構(gòu)思,本發(fā)明的實施例還提供了一種短信息顯示的裝置,參見圖4,該裝置包括:存儲模塊41、監(jiān)聽模塊42和顯示模塊43。
存儲模塊41,用于將注冊的contentobserver和短信息數(shù)據(jù)庫地址存儲至中間層的service中;
監(jiān)聽模塊42,用于監(jiān)聽短信息數(shù)據(jù)庫狀態(tài);
顯示模塊43,用于若短信息數(shù)據(jù)庫狀態(tài)為接收到新短信息時,則從所述service中查詢與所述短信息數(shù)據(jù)庫地址對應的所述contentobserver,以顯示所述新短信息。
可選的,該顯示模塊43,具體用于若從短信息數(shù)據(jù)庫中最新的短信息記錄中查詢type為1,則確定短信息數(shù)據(jù)庫狀態(tài)為接收到新短信息。
可選的,該顯示模塊43,還用于當從所述短信息記錄中查詢address滿足預設條件時,從body中獲取所述新短信息的文本內(nèi)容,并對所述文本內(nèi)容進行關(guān)鍵字和/或字符串匹配,確定所述新短信息為驗證碼短信息。
可選的,為避免驗證碼失效的驗證碼短信息影響用戶體驗,參見圖5,該加快短信息顯示的裝置還可以包括:
刪除模塊44,用于若所述驗證碼短信息顯示時間超過預設時間閾值,則刪除所述驗證碼短信息在所述短信息數(shù)據(jù)庫中對應的短信息記錄。
關(guān)于本發(fā)明實施例提供的短信息顯示的裝置的更多說明可以參考上述短信息顯示的方法實施例的具體描述,其實現(xiàn)原理和有益效果類似,在此不再詳細說明。
為了描述的方便,描述以上裝置時以功能分為各種模塊分別描述。當然,在實施本發(fā)明時可以把各模塊的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
基于同一技術(shù)構(gòu)思,本發(fā)明的實施例還提供了一種移動終端設備,參見圖6,該設備包括:存儲器601、處理器602及存儲在存儲器601上并可在處理器602上運行的計算機程序,處理器602執(zhí)行所述程序時實現(xiàn)以下步驟,該步驟包括前述方法實施例中對應的方法。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。