一種調(diào)用系統(tǒng)的消息處理能力的方法和移動終端的制作方法
【專利摘要】本發(fā)明實(shí)施例公開了一種調(diào)用系統(tǒng)的消息處理能力的方法,所述方法包括:替換系統(tǒng)的主屏程序的原始初始化代碼,并在所述主屏程序中嵌入回調(diào)處理函數(shù);所述主屏程序通過所述替換后的主屏程序的初始化代碼建立與第三方程序之間的進(jìn)程間通信通道;所述主屏程序通過所述建立得到的進(jìn)程間通信通道監(jiān)聽到第三方程序的消息處理請求;所述主屏程序調(diào)用所述回調(diào)處理函數(shù)處理所述第三方程序的消息處理請求。本發(fā)明實(shí)施例還公開了一種移動終端。采用本發(fā)明,可以實(shí)現(xiàn)第三方程序調(diào)用系統(tǒng)的消息處理能力。
【專利說明】一種調(diào)用系統(tǒng)的消息處理能力的方法和移動終端
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種調(diào)用系統(tǒng)的消息處理能力的方法和移動終端。
【背景技術(shù)】
[0002]由于在一些移動終端的操作系統(tǒng)的限制,在第三方程序中只能通過系統(tǒng)開發(fā)公司提供的公開接口發(fā)短信,而系統(tǒng)開發(fā)公司提供的公開接口只能實(shí)現(xiàn)有限的功能,例如在蘋果公司開發(fā)的iOS系統(tǒng)中,第三方程序并不能進(jìn)行讀取短信數(shù)據(jù)庫,發(fā)送彩信和iMessage(iOS系統(tǒng)設(shè)備之間的一種即時(shí)通訊工具,不需經(jīng)過通訊運(yùn)營商而是通過網(wǎng)絡(luò)可直達(dá)對方iOS設(shè)備)消息等操作。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實(shí)施例所要解決的技術(shù)問題在于,提供一種調(diào)用系統(tǒng)的消息處理能力的方法和移動終端,可實(shí)現(xiàn)第三方程序調(diào)用系統(tǒng)的消息處理能力。
[0004]為了解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種調(diào)用系統(tǒng)的消息處理能力的方法,所述方法包括:
[0005]替換系統(tǒng)的主屏程序的原始初始化代碼,并在所述主屏程序中嵌入回調(diào)處理函數(shù);
[0006]所述主屏程序通過所述替換后的主屏程序的初始化代碼建立與第三方程序之間的進(jìn)程間通信通道;
[0007]所述主屏程序通過所述建立得到的進(jìn)程間通信通道監(jiān)聽到第三方程序的消息處理請求;
[0008]所述主屏程序調(diào)用所述回調(diào)處理函數(shù)處理所述第三方程序的消息處理請求。
[0009]其中,所述所述主屏程序通過所述替換后的主屏程序的初始化代碼建立與第三方程序之間的進(jìn)程間通信通道之后還包括:
[0010]還原所述主屏程序的原始初始化代碼。
[0011]其中,所述替換系統(tǒng)的主屏程序的原始初始化代碼包括:
[0012]通過采用Hook技術(shù)將動態(tài)庫中的代碼替換所述主屏程序的原始初始化代碼。
[0013]其中,所述方法還包括:
[0014]所述主屏程序?qū)⑻幚硭龅谌匠绦虻南⑻幚碚埱蟮慕Y(jié)果通過所述建立得到進(jìn)程間通信通道返回至所述第三方程序。
[0015]其中,所述主屏程序調(diào)用所述回調(diào)處理函數(shù)處理所述第三方程序的消息處理請求包括:
[0016]根據(jù)所述第三方程序的消息處理請求調(diào)用所述回調(diào)處理函數(shù)執(zhí)行以下消息處理中的任一種:讀取消息數(shù)據(jù)庫、調(diào)用系統(tǒng)應(yīng)用程序接口發(fā)送消息。
[0017]其中,所述系統(tǒng)為已越獄的iOS系統(tǒng),并已安裝mobile substrate依賴包。[0018]相應(yīng)地,本發(fā)明實(shí)施例還提供了一種移動終端,所述移動終端包括:
[0019]代碼處理模塊,用于替換系統(tǒng)的主屏程序的原始初始化代碼,并在所述主屏程序中嵌入回調(diào)處理函數(shù);
[0020]所述主屏程序包括:
[0021]通信通道建立單元,用于通過所述替換后的初始化代碼建立所述主屏程序與第三方程序之間的進(jìn)程間通信通道;
[0022]請求監(jiān)聽單元,用于通過所述建立得到的進(jìn)程間通信通道監(jiān)聽到第三方程序的消息處理請求;
[0023]消息處理單元,用于調(diào)用所述回調(diào)處理函數(shù)處理所述第三方程序的消息處理請求。
[0024]其中,所述代碼處理模塊還用于:在所述通信通道建立單元通過所述替換后的初始化代碼建立所述主屏程序與第三方程序之間的進(jìn)程間通信通道完成后,使用所述主屏程序的原始初始化代碼替換所述替換后的主屏程序的初始化代碼。
[0025]其中,所述代碼處理模塊包括:
[0026]初始化替換單元,用于通過采用Hook技術(shù)將動態(tài)庫中的代碼替換所述主屏程序的初始化代碼。
[0027]其中,所述主屏程序還包括:
[0028]結(jié)果返回單元,用于將處理所述第三方程序的消息處理請求的結(jié)果通過所述建立得到進(jìn)程間通信通道返回至所述第三方程序。
[0029]其中,所述消息處理單元具體用于:
[0030]根據(jù)所述第三方程序的消息處理請求調(diào)用所述回調(diào)處理函數(shù)執(zhí)行以下消息處理中的任一種:讀取消息數(shù)據(jù)庫、調(diào)用系統(tǒng)應(yīng)用程序接口發(fā)送消息。
[0031]其中,所述系統(tǒng)為已越獄的iOS系統(tǒng),并已安裝mobile substrate依賴包。
[0032]本發(fā)明實(shí)施例通過替換系統(tǒng)的主屏程序的初始化代碼實(shí)現(xiàn)建立主屏程序與第三方程序之間的IPC通道,進(jìn)而可以監(jiān)聽到第三方程序的消息處理請求并調(diào)用系統(tǒng)的消息處理能力進(jìn)行處理,實(shí)現(xiàn)了第三方程序調(diào)用系統(tǒng)的消息處理能力。
【專利附圖】
【附圖說明】
[0033]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0034]圖1是本發(fā)明實(shí)施例中的一種調(diào)用系統(tǒng)的消息處理能力的方法的流程示意圖;
[0035]圖2是本發(fā)明實(shí)施例中的一種移動終端的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0036]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0037]圖1是本發(fā)明實(shí)施例中的一種調(diào)用系統(tǒng)的消息處理能力的方法的流程示意圖,本發(fā)明實(shí)施例中的調(diào)用系統(tǒng)的消息處理能力的方法可以實(shí)現(xiàn)在例如iOS系統(tǒng)的手機(jī)、平板電腦、數(shù)字電視、便攜式多媒體播放器等移動終端上,具備正常收發(fā)短信和iMessage等消息處理能力。如圖所示本發(fā)明實(shí)施例中實(shí)現(xiàn)第三方程序調(diào)用系統(tǒng)的消息處理能力的方法包括:
[0038]S101,替換系統(tǒng)的主屏程序的原始初始化代碼,并在所述主屏程序中嵌入回調(diào)處
理函數(shù)。
[0039]具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例中的系統(tǒng)可以為已越獄的iOS系統(tǒng),并預(yù)先安裝了mobilesubstrate基礎(chǔ)依賴包(cydia插件或者軟件運(yùn)行的基礎(chǔ)依賴包。它提供軟件運(yùn)行的公共庫,可以用來動態(tài)替換內(nèi)存中的代碼、數(shù)據(jù)等),在安裝需要調(diào)用系統(tǒng)的消息處理能力的第三方程序時(shí),可以通過采用Hook技術(shù)(iOS下的Hook技術(shù)是通過動態(tài)庫的方式加載到程序中,用自定義的函數(shù)替換系統(tǒng)原始函數(shù)的方法)將動態(tài)庫中的預(yù)設(shè)代碼替換iOS系統(tǒng)的主屏程序(SpringBoard程序,為管理iOS主屏幕的程序,同時(shí)也負(fù)責(zé)管理其他任務(wù)包括窗口服務(wù)、應(yīng)用程序的啟動和切換、設(shè)備設(shè)置等)的原始初始化代碼,并在所述主屏程序中嵌入預(yù)設(shè)的回調(diào)處理函數(shù),所述預(yù)設(shè)的用于替換主屏程序的原始初始化代碼用于建立主屏程序與所述第三方程序之間的進(jìn)程間通信通道,而預(yù)設(shè)的回調(diào)處理函數(shù)用于對所述第三方程序發(fā)出的請求進(jìn)行相應(yīng)處理。
[0040]S102,所述主屏程序通過所述替換后的主屏程序的初始化代碼建立與第三方程序之間的進(jìn)程間通信通道。
[0041]具體實(shí)現(xiàn)中,可以通過觸發(fā)主屏程序的所述被替換后的初始化代碼,從而在主屏程序與第三方程序之間的IPC (Inter-Process Communication,進(jìn)程間通信)通道,本發(fā)明實(shí)施例中的IPC通道可以是Socket、管道或者其他在iOS系統(tǒng)中支持的進(jìn)程間通信方式。
[0042]S103,所述主屏程序通過所述建立得到的進(jìn)程間通信通道監(jiān)聽到第三方程序的消息處理請求。
[0043]具體的,所述消息處理請求可以為第三方程序請求訪問短信數(shù)據(jù)庫、發(fā)送短信、彩信或者iMessage等。在建立得到主屏程序與第三方程序之間的IPC通道后,主屏程序可以實(shí)現(xiàn)通過建立得到的IPC通道監(jiān)聽第三方程序發(fā)出的請求,當(dāng)監(jiān)聽到第三方程序發(fā)出的消息處理請求后,執(zhí)行S104。
[0044]S104,所述主屏程序調(diào)用所述回調(diào)處理函數(shù)處理所述第三方程序的消息處理請求。
[0045]具體的,在監(jiān)聽到第三方程序發(fā)出的消息處理請求后,所述主屏程序中預(yù)先嵌入的回調(diào)處理函數(shù)被觸發(fā),通過執(zhí)行所述回調(diào)處理函數(shù)調(diào)用系統(tǒng)的消息處理能力對所述消息處理請求進(jìn)行處理,例如根據(jù)第三方程序發(fā)出的消息處理請求直接讀取消息數(shù)據(jù)庫中的短信、iMessage等,或根據(jù)第三方程序發(fā)出的消息處理請求調(diào)用系統(tǒng)API (ApplicationProgramming Interface,應(yīng)用程序編程接口)發(fā)送短信、彩信或者iMessage等。
[0046]進(jìn)而,主屏程序通過執(zhí)行所述回調(diào)處理函數(shù)在對監(jiān)聽到的第三方程序的消息處理請求進(jìn)行處理后,可以將處理結(jié)果返回至所述第三方程序,例如將請求讀取的短信數(shù)據(jù)返回給第三方程序使其在程序界面上顯示給用戶,或?qū)⑾l(fā)送的反饋消息返回給第三方程序使其在程序界面中提示用戶消息發(fā)送成功與否。
[0047]圖2是本發(fā)明實(shí)施例中的一種移動終端的結(jié)構(gòu)示意圖。本發(fā)明實(shí)施例中的移動終端可以實(shí)現(xiàn)在如iOS系統(tǒng)的手機(jī)、平板電腦、數(shù)字電視、便攜式多媒體播放器等設(shè)備上,具備正常收發(fā)短信和iMessage等消息處理能力。如圖所示本發(fā)明實(shí)施例中的移動終端包括代碼處理模塊210、主屏程序220以及第三方程序230,其中:
[0048]代碼處理模塊210用于替換系統(tǒng)的主屏程序的原始初始化代碼,并在所述主屏程序中嵌入回調(diào)處理函數(shù)。
[0049]具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例中的系統(tǒng)可以為已越獄的iOS系統(tǒng),并預(yù)先安裝了mobilesubstrate基礎(chǔ)依賴包(cydia插件或者軟件運(yùn)行的基礎(chǔ)依賴包,提供軟件運(yùn)行的公共庫,可以用來動態(tài)替換內(nèi)存中的代碼、數(shù)據(jù)等),在安裝需要調(diào)用系統(tǒng)的消息處理能力的第三方程序時(shí),代碼處理模塊210可以通過采用Hook技術(shù)(iOS下的Hook技術(shù)是通過動態(tài)庫的方式加載到程序中,用自定義的函數(shù)替換系統(tǒng)原始函數(shù)的方法)將動態(tài)庫中的預(yù)設(shè)代碼替換iOS系統(tǒng)的主屏程序的原始初始化代碼,并在所述主屏程序中嵌入預(yù)設(shè)的回調(diào)處理函數(shù),所述預(yù)設(shè)的用于替換主屏程序的原始初始化代碼用于建立主屏程序與所述第三方程序之間的進(jìn)程間通信通道,而預(yù)設(shè)的回調(diào)處理函數(shù)用于對所述第三方程序發(fā)出的請求進(jìn)行相應(yīng)處理。
[0050]所述主屏程序220包括:
[0051]通信通道建立單元221,用于通過所述替換后的初始化代碼建立所述主屏程序與第三方程序之間的進(jìn)程間通信通道。具體實(shí)現(xiàn)中,通信通道建立單元221可以通過觸發(fā)主屏程序的所述被替換后的初始化代碼,從而在主屏程序與第三方程序之間的IPC(Inter-Process Communication,進(jìn)程間通信)通道。
[0052]請求監(jiān)聽單元222,用于通過所述建立得到的進(jìn)程間通信通道監(jiān)聽到第三方程序的消息處理請求。具體的,所述第三方程序的消息處理請求可以為第三方程序請求訪問短信數(shù)據(jù)庫、發(fā)送短信、彩信或者iMessage等。在通信通道建立單元221建立得到主屏程序與第三方程序之間的IPC通道后,請求監(jiān)聽單元222可以通過建立得到的IPC通道監(jiān)聽第三方程序發(fā)出的請求,當(dāng)監(jiān)聽到第三方程序發(fā)出的消息處理請求后,觸發(fā)消息處理單元223處理所述請求。
[0053]消息處理單元223,用于調(diào)用所述回調(diào)處理函數(shù)處理所述第三方程序的消息處理請求。具體實(shí)現(xiàn)中,當(dāng)請求監(jiān)聽單元222監(jiān)聽到第三方程序發(fā)出的消息處理請求后,消息處理單元223觸發(fā)所述主屏程序中預(yù)先嵌入的回調(diào)處理函數(shù),通過執(zhí)行所述回調(diào)處理函數(shù)調(diào)用系統(tǒng)的消息處理能力對所述消息處理請求進(jìn)行處理,例如根據(jù)第三方程序發(fā)出的消息處理請求直接讀取消息數(shù)據(jù)庫中的短信、iMessage等,或根據(jù)第三方程序發(fā)出的消息處理請求調(diào)用系統(tǒng)API (Application Programming Interface,應(yīng)用程序編程接口)發(fā)送短信、彩信或者iMessage等。
[0054]進(jìn)而,本發(fā)明實(shí)施例中的移動終端的主屏程序還可以包括:
[0055]結(jié)果返回單元224,用于將處理所述第三方程序的消息處理請求的結(jié)果通過所述建立得到進(jìn)程間通信通道返回至所述第三方程序。具體實(shí)現(xiàn)中,消息處理單元223通過執(zhí)行所述回調(diào)處理函數(shù)在對監(jiān)聽到的第三方程序的消息處理請求進(jìn)行處理后,結(jié)果返回單元224可以將處理結(jié)果返回至所述第三方程序,例如將請求讀取的短信數(shù)據(jù)返回給第三方程序使其在程序界面上顯示給用戶,或?qū)⑾l(fā)送的反饋消息返回給第三方程序使其在程序界面中提示用戶消息發(fā)送成功與否。
[0056]本發(fā)明實(shí)施例通過替換移動終端系統(tǒng)的主屏程序的初始化代碼實(shí)現(xiàn)建立主屏程序與第三方程序之間的IPC通道,進(jìn)而可以監(jiān)聽到第三方程序的消息處理請求并調(diào)用系統(tǒng)的消息處理能力進(jìn)行處理,實(shí)現(xiàn)了第三方程序調(diào)用系統(tǒng)的消息處理能力。
[0057]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機(jī)存儲記憶體(Random AccessMemory, RAM)等。
[0058]以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
【權(quán)利要求】
1.一種調(diào)用系統(tǒng)的消息處理能力的方法,其特征在于,所述方法包括: 替換系統(tǒng)的主屏程序的原始初始化代碼,并在所述主屏程序中嵌入回調(diào)處理函數(shù);所述主屏程序通過所述替換后的主屏程序的初始化代碼建立與第三方程序之間的進(jìn)程間通信通道; 所述主屏程序通過所述建立得到的進(jìn)程間通信通道監(jiān)聽到第三方程序的消息處理請求; 所述主屏程序調(diào)用所述回調(diào)處理函數(shù)處理所述第三方程序的消息處理請求。
2.如權(quán)利要求1所述的調(diào)用系統(tǒng)的消息處理能力的方法,其特征在于,所述所述主屏程序通過所述替換后的主屏程序的初始化代碼建立與第三方程序之間的進(jìn)程間通信通道之后還包括: 還原所述主屏程序的原始初始化代碼。
3.如權(quán)利要求1所述的調(diào)用系統(tǒng)的消息處理能力的方法,其特征在于,所述替換系統(tǒng)的主屏程序的原始初始化代碼包括: 通過采用Hook技術(shù)將動態(tài)庫中的代碼替換所述主屏程序的原始初始化代碼。
4.如權(quán)利要求1所述的調(diào)用系統(tǒng)的消息處理能力的方法,其特征在于,所述方法還包括: 所述主屏程序?qū)⑻幚硭龅谌匠绦虻南⑻幚碚埱蟮慕Y(jié)果通過所述建立得到進(jìn)程間通信通道返回至所述第三方程序。
5.如權(quán)利要求1所述的調(diào)用系統(tǒng)的消息處理能力的方法,其特征在于,所述主屏程序調(diào)用所述回調(diào)處理函數(shù)處理所述第三方程序的消息處理請求包括: 根據(jù)所述第三方程序的消息處理請求調(diào)用所述回調(diào)處理函數(shù)執(zhí)行以下消息處理中的任一種:讀取消息數(shù)據(jù)庫、調(diào)用系統(tǒng)應(yīng)用程序接口發(fā)送消息。
6.如權(quán)利要求廣5中任一項(xiàng)所述的調(diào)用系統(tǒng)的消息處理能力的方法,其特征在于,所述系統(tǒng)為已越獄的iOS系統(tǒng),并已安裝mobile substrate依賴包。
7.—種移動終端,其特征在于,所述移動終端包括: 代碼處理模塊,用于替換系統(tǒng)的主屏程序的原始初始化代碼,并在所述主屏程序中嵌入回調(diào)處理函數(shù); 所述主屏程序包括: 通信通道建立單元,用于通過所述替換后的初始化代碼建立所述主屏程序與第三方程序之間的進(jìn)程間通信通道; 請求監(jiān)聽單元,用于通過所述建立得到的進(jìn)程間通信通道監(jiān)聽到第三方程序的消息處理請求; 消息處理單元,用于調(diào)用所述回調(diào)處理函數(shù)處理所述第三方程序的消息處理請求。
8.如權(quán)利要求7所述的移動終端,其特征在于,所述代碼處理模塊還用于:在所述通信通道建立單元通過所述替換后的初始化代碼建立所述主屏程序與第三方程序之間的進(jìn)程間通信通道完成后,使用所述主屏程序的原始初始化代碼替換所述替換后的主屏程序的初始化代碼。
9.如權(quán)利要求7所述的移動終端,其特征在于,所述代碼處理模塊包括: 初始化替換單元,用于通過采用Hook技術(shù)將動態(tài)庫中的代碼替換所述主屏程序的初始化代碼。
10.如權(quán)利要求7所述的移動終端,其特征在于,所述主屏程序還包括: 結(jié)果返回單元,用于將處理所述第三方程序的消息處理請求的結(jié)果通過所述建立得到進(jìn)程間通信通道返回至所述第三方程序。
11.如權(quán)利要求7所述的移動終端,其特征在于,所述消息處理單元具體用于: 根據(jù)所述第三方程序的消息處理請求調(diào)用所述回調(diào)處理函數(shù)執(zhí)行以下消息處理中的任一種:讀取消息數(shù)據(jù)庫、調(diào)用系統(tǒng)應(yīng)用程序接口發(fā)送消息。
12.如權(quán)利要求7~11中任一項(xiàng)所述的移動終端,其特征在于,所述系統(tǒng)為已越獄的iOS系統(tǒng),并已安裝mo bile substrate依賴包。
【文檔編號】G06F9/445GK103914321SQ201310002212
【公開日】2014年7月9日 申請日期:2013年1月5日 優(yōu)先權(quán)日:2013年1月5日
【發(fā)明者】陳靜聰, 李斌 申請人:騰訊科技(深圳)有限公司