移動(dòng)終端中程序間共享數(shù)據(jù)的方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種移動(dòng)終端中程序間共享數(shù)據(jù)的方法及裝置,方法包括:移動(dòng)終端中的第一程序接收所述移動(dòng)終端中的第二程序發(fā)送的數(shù)據(jù)請(qǐng)求,所述數(shù)據(jù)請(qǐng)求包括驗(yàn)證信息和所請(qǐng)求的數(shù)據(jù)的定位信息;所述第一程序按照預(yù)設(shè)的權(quán)限驗(yàn)證規(guī)則對(duì)所述驗(yàn)證信息進(jìn)行驗(yàn)證;若驗(yàn)證成功,則所述第一程序根據(jù)所述定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄信息,將所述目錄信息發(fā)送給所述第二程序,以使所述第二程序根據(jù)所述目錄信息對(duì)相應(yīng)目錄下的數(shù)據(jù)進(jìn)行操作。本技術(shù)方案能提高數(shù)據(jù)共享的安全性。
【專利說(shuō)明】移動(dòng)終端中程序間共享數(shù)據(jù)的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)應(yīng)用【技術(shù)領(lǐng)域】,具體涉及移動(dòng)通信【技術(shù)領(lǐng)域】,尤其涉及移動(dòng)終端中程序間共享數(shù)據(jù)的方法及裝置。
【背景技術(shù)】
[0002]移動(dòng)終端作為一種輕便的客戶裝置,它們非常具有吸引力,在移動(dòng)終端中,預(yù)裝載有一些有用的應(yīng)用程序和客戶端程序,應(yīng)用程序如記事本、通訊錄、任務(wù)表、備忘錄、圖片處理程序等,客戶端程序如郵件客戶端程序、各種社交網(wǎng)站客戶端程序等。這些應(yīng)用程序和客戶端程序中,某些程序之間通常需要共享數(shù)據(jù)。例如,假設(shè)用戶正在使用圖片處理程序進(jìn)行照片處理,用戶想要對(duì)社交網(wǎng)站(例如微博)中的某張照片進(jìn)行處理,并將處理后的照片在該社交網(wǎng)站中與其他用戶進(jìn)行分享,若不實(shí)現(xiàn)程序間數(shù)據(jù)共享,則用戶需要進(jìn)行的操作為:首先執(zhí)行該社交網(wǎng)站的客戶端程序,從所述社交網(wǎng)站中提取欲處理的照片保存到移動(dòng)終端本地,然后啟用該圖片處理程序,將所述本地保存的所述欲處理的照片導(dǎo)入到所述圖片處理程序進(jìn)行處理,處理完成后將經(jīng)處理的照片導(dǎo)出到本地,再啟用該社交網(wǎng)站客戶端程序,從本地將上述經(jīng)處理的照片導(dǎo)入到所述社交網(wǎng)站中再分享給其他用戶。上述數(shù)據(jù)交互過(guò)程需要在社交網(wǎng)站客戶端程序和圖片處理程序之中進(jìn)行頻繁切換,操作繁瑣,影響了數(shù)據(jù)交互的效率,而且無(wú)形中存儲(chǔ)了重復(fù)數(shù)據(jù),浪費(fèi)了移動(dòng)終端中有限且寶貴的存儲(chǔ)空間。
[0003]對(duì)于需要移動(dòng)終端中程序間共享數(shù)據(jù)的情況,一種現(xiàn)有技術(shù)的方法是:通過(guò)在提供共享數(shù)據(jù)的程序端,提供統(tǒng)一的打開文件接口,該移動(dòng)終端上的其他程序只需要使用預(yù)設(shè)的通用資源定位符URI (Uniform Resource Identifier)即可通過(guò)所述打開文件接口訪問(wèn)所述提供共享數(shù)據(jù)的程序中的共享數(shù)據(jù)。
[0004]在提供共享數(shù)據(jù)的程序端實(shí)現(xiàn)所述打開文件接口后,該移動(dòng)終端上的其他任何程序只要知道了訪問(wèn)該提供共享數(shù)據(jù)的程序的統(tǒng)一資源定位符,就可以對(duì)所述提供共享數(shù)據(jù)的程序中的所述共享數(shù)據(jù)進(jìn)行讀取甚至刪除操作,一些惡意程序可能會(huì)肆意破壞該提供共享數(shù)據(jù)的程序中的共享數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明實(shí)施例提供了一種移動(dòng)終端中程序間共享數(shù)據(jù)的方法及裝置,來(lái)解決以上【背景技術(shù)】部分提到的技術(shù)問(wèn)題。
[0006]本發(fā)明實(shí)施例提供了一種移動(dòng)終端中程序間共享數(shù)據(jù)的方法,包括:
[0007]移動(dòng)終端中的第一程序接收所述移動(dòng)終端中的第二程序發(fā)送的數(shù)據(jù)請(qǐng)求,所述數(shù)據(jù)請(qǐng)求包括驗(yàn)證信息和所請(qǐng)求的數(shù)據(jù)的定位信息;
[0008]所述第一程序按照預(yù)設(shè)的權(quán)限驗(yàn)證規(guī)則對(duì)所述驗(yàn)證信息進(jìn)行驗(yàn)證;
[0009]若驗(yàn)證成功,則所述第一程序根據(jù)所述定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄信息,將所述目錄信息發(fā)送給所述第二程序,以使所述第二程序根據(jù)所述目錄信息對(duì)相應(yīng)目錄下的數(shù)據(jù)進(jìn)行操作。
[0010]根據(jù)本發(fā)明的同一構(gòu)思,本發(fā)明實(shí)施例還提供了一種移動(dòng)終端中程序間共享數(shù)據(jù)的裝置,包括:
[0011 ] 請(qǐng)求接收單元,用于移動(dòng)終端中的第一程序接收所述移動(dòng)終端中的第二程序發(fā)送的數(shù)據(jù)請(qǐng)求,所述數(shù)據(jù)請(qǐng)求包括驗(yàn)證信息和所請(qǐng)求的數(shù)據(jù)的定位信息;
[0012]驗(yàn)證單元,用于所述第一程序按照預(yù)設(shè)的權(quán)限驗(yàn)證規(guī)則對(duì)所述驗(yàn)證信息進(jìn)行驗(yàn)證;
[0013]目錄信息獲取與發(fā)送單元,用于若驗(yàn)證成功,則所述第一程序根據(jù)所述定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄信息,將所述目錄信息發(fā)送給所述第二程序,以使所述第二程序根據(jù)所述目錄信息對(duì)相應(yīng)目錄下的數(shù)據(jù)進(jìn)行操作。
[0014]根據(jù)本發(fā)明的同一構(gòu)思,本發(fā)明實(shí)施例還提供了一種移動(dòng)終端,,包括如上所述的移動(dòng)終端中程序間共享數(shù)據(jù)的裝置。
[0015]本發(fā)明實(shí)施例的有益技術(shù)效果是:
[0016]本發(fā)明實(shí)施例通過(guò)在向其他程序共享數(shù)據(jù)之前先按照預(yù)設(shè)的權(quán)限驗(yàn)證規(guī)則進(jìn)行驗(yàn)證,若驗(yàn)證成功,再根據(jù)提出共享請(qǐng)求的程序所提供的定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄信息,以使所述請(qǐng)求數(shù)據(jù)的程序根據(jù)所述目錄信息對(duì)相應(yīng)目錄下的數(shù)據(jù)進(jìn)行操作,能提高數(shù)據(jù)共享的安全性。
【專利附圖】
【附圖說(shuō)明】
[0017]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)本發(fā)明實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)本發(fā)明實(shí)施例的內(nèi)容和這些附圖獲得其他的附圖。
[0018]圖1是本發(fā)明具體實(shí)施例一所述的移動(dòng)終端中程序間共享數(shù)據(jù)的方法流程圖;
[0019]圖2是本發(fā)明實(shí)施例一和實(shí)施例二所述的第一程序與第二程序的交互示意圖;
[0020]圖3是本發(fā)明具體實(shí)施例二所述的移動(dòng)終端中程序間共享數(shù)據(jù)的方法流程圖;
[0021]圖4是本發(fā)明具體實(shí)施例三所述的移動(dòng)終端中程序間共享數(shù)據(jù)的裝置結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0022]為使本發(fā)明解決的技術(shù)問(wèn)題、采用的技術(shù)方案和達(dá)到的技術(shù)效果更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施例的技術(shù)方案作進(jìn)一步的詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0023]下面結(jié)合附圖并通過(guò)【具體實(shí)施方式】來(lái)進(jìn)一步說(shuō)明本發(fā)明的技術(shù)方案。
[0024]實(shí)施例一
[0025]圖1是本實(shí)施例所述的移動(dòng)終端中程序間共享數(shù)據(jù)的方法流程圖,本實(shí)施例主要應(yīng)用于能夠安裝應(yīng)用程序和/或客戶端程序的終端,包括智能手機(jī)、電子書閱讀器、平板電腦、游戲機(jī)、筆記本電腦等,主要應(yīng)用于同一移動(dòng)終端上至少兩個(gè)程序間的數(shù)據(jù)共享和數(shù)據(jù)訪問(wèn)。如圖1所示,本實(shí)施例所述的移動(dòng)終端中程序間共享數(shù)據(jù)的方法包括:
[0026]S101、第一程序接收第二程序發(fā)送的數(shù)據(jù)請(qǐng)求,所述數(shù)據(jù)請(qǐng)求包括驗(yàn)證信息和所請(qǐng)求的數(shù)據(jù)的定位信息。
[0027]兩個(gè)應(yīng)用程序之間要進(jìn)行互相通信,首先得建立連接(例如TCP連接),移動(dòng)終端中的所述第二程序與所述移動(dòng)終端中的所述第一程序建立連接后,向所述第一程序發(fā)送數(shù)據(jù)請(qǐng)求,所述數(shù)據(jù)請(qǐng)求包括驗(yàn)證信息和所請(qǐng)求的數(shù)據(jù)的定位信息。
[0028]所述所請(qǐng)求的數(shù)據(jù)包括普通文件、圖片、音頻、視頻、數(shù)據(jù)庫(kù)和/或配置文件等。
[0029]所述驗(yàn)證信息可為簽名、包名和/或預(yù)設(shè)密碼等類型,為了保證數(shù)據(jù)安全,通常不同的發(fā)出數(shù)據(jù)共享請(qǐng)求的應(yīng)用程序,其具體的驗(yàn)證信息不同。在提供共享數(shù)據(jù)的應(yīng)用程序端,預(yù)先設(shè)置了完備的權(quán)限驗(yàn)證規(guī)則,以及提供了與所述驗(yàn)證規(guī)則對(duì)應(yīng)的驗(yàn)證算法,用于分別對(duì)提出數(shù)據(jù)共享請(qǐng)求的應(yīng)用程序所提供的驗(yàn)證信息進(jìn)行驗(yàn)證。
[0030]S102、第一程序按照預(yù)設(shè)的權(quán)限驗(yàn)證規(guī)則對(duì)驗(yàn)證信息進(jìn)行驗(yàn)證。
[0031]例如在提供共享數(shù)據(jù)的應(yīng)用程序端(第一程序),保存有根據(jù)包名的白名單,以及該白名單中的各包名對(duì)應(yīng)的簽名。預(yù)先設(shè)置了驗(yàn)證規(guī)則:首先判斷提出數(shù)據(jù)共享請(qǐng)求的應(yīng)用程序的包名是否在所述白名單中,若是則進(jìn)一步判斷提供的簽名與所述包名對(duì)應(yīng)的簽名是否匹配,若是則判斷驗(yàn)證成功,否則判斷驗(yàn)證失敗。
[0032]又如在提供共享數(shù)據(jù)的應(yīng)用程序端(第一程序),保存有根據(jù)包名的黑名單,預(yù)先設(shè)置了驗(yàn)證規(guī)則:首先判斷提出數(shù)據(jù)共享請(qǐng)求的應(yīng)用程序的包名是否在所述黑名單中,若是則判斷驗(yàn)證失??;否則進(jìn)一步判斷提供的簽名是否有效,若是則判斷驗(yàn)證成功,否則判斷驗(yàn)證失敗。
[0033]S103、判斷驗(yàn)證是否成功,若是則執(zhí)行步驟S104,否則執(zhí)行步驟S105。
[0034]S104、第一程序根據(jù)定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄信息,將所述目錄信息發(fā)送給第二程序,結(jié)束。
[0035]因?yàn)樗龆ㄎ恍畔⒖梢允前?qǐng)求的數(shù)據(jù)的相對(duì)路徑,也可以包含所請(qǐng)求的數(shù)據(jù)的絕對(duì)路徑。
[0036]若所述定位信息是包含所請(qǐng)求的數(shù)據(jù)的絕對(duì)路徑時(shí),假設(shè)有一個(gè)基本的通用資源標(biāo)識(shí)符UR1:協(xié)議://域名/目錄a/目錄b/文件C,則所述定位信息即為所請(qǐng)求的數(shù)據(jù)的目錄信息。
[0037]若所述定位信息是包含所請(qǐng)求的數(shù)據(jù)的相對(duì)路徑時(shí),根據(jù)定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄信息。
[0038]例如定位信息為相對(duì)通用資源標(biāo)識(shí)符URI,因?yàn)橄鄬?duì)URI不包含任何命名規(guī)范信息,它的路徑通常指同一臺(tái)機(jī)器上的資源,可能含有相對(duì)路徑(如,.”表示上一層路徑),還可能包含片段標(biāo)志符。
[0039]若定位信息中使用了相對(duì)URI,記錄為文件D”,它擴(kuò)展成完全的URI就是“協(xié)議://域名/目錄a/文件D”,又如一個(gè)圖像的相對(duì)UR1:〈IMGsrc=〃/icons/log0.gif〃alt=〃logo〃>,它擴(kuò)展成完全的URI就是“協(xié)議://域名/巨錄a/icons/log0.gif”。
[0040]S105、不獲取目錄信息,結(jié)束。
[0041]圖2是所述的第一程序與第二程序的交互示意圖,如圖2所示,所述第一程序向所述第二程序發(fā)送目錄信息后,所述第二程序根據(jù)所述目錄信息對(duì)相應(yīng)目錄下的數(shù)據(jù)進(jìn)行操作。
[0042]其中,所述第二程序?qū)λ?qǐng)求的數(shù)據(jù)的具體的操作可包括增、刪、改、查等操作。
[0043]本發(fā)明實(shí)施例通過(guò)在向其他程序共享數(shù)據(jù)之前先按照預(yù)設(shè)的權(quán)限驗(yàn)證規(guī)則進(jìn)行驗(yàn)證,若驗(yàn)證成功,再根據(jù)提出共享請(qǐng)求的程序所提供的定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄信息,以使所述請(qǐng)求數(shù)據(jù)的程序根據(jù)所述目錄信息對(duì)相應(yīng)目錄下的數(shù)據(jù)進(jìn)行操作,能提高數(shù)據(jù)共享的安全性。
[0044]實(shí)施例二
[0045]圖3是本實(shí)施例所述的移動(dòng)終端中程序間共享數(shù)據(jù)的方法流程圖,本實(shí)施例主要以操作系統(tǒng)為安卓系統(tǒng)的移動(dòng)終端上的兩個(gè)應(yīng)用程序(程序A和B)之間共享數(shù)據(jù)為例,對(duì)應(yīng)用程序間共享數(shù)據(jù)的實(shí)現(xiàn)方式進(jìn)行進(jìn)一步描述。
[0046]具體地,本實(shí)施例所述方法如圖3所示,本實(shí)施例所述的移動(dòng)終端中程序間共享數(shù)據(jù)的方法包括:
[0047]S301、第一程序接收第二程序發(fā)送的數(shù)據(jù)請(qǐng)求,所述數(shù)據(jù)請(qǐng)求包括包名、密碼、操作類型信息和所請(qǐng)求的數(shù)據(jù)的定位信息。
[0048]在所述第一程序以子類的形式提供一個(gè)內(nèi)容提供器Content Provider,并實(shí)現(xiàn)openFile接口,用來(lái)接收包括包名、密碼、操作類型信息和所請(qǐng)求的數(shù)據(jù)的定位信息等。
[0049]獲取所述第二程序的包名,將所述第二程序向所述第一程序發(fā)送的請(qǐng)求信息中的密碼、操作類型信息和所請(qǐng)求的數(shù)據(jù)的定位信息傳輸給所述openFile接口。
[0050]S302、第一程序按照預(yù)設(shè)的權(quán)限驗(yàn)證規(guī)則對(duì)包名、密碼、操作類型信息進(jìn)行驗(yàn)證。
[0051]所述第一程序預(yù)先設(shè)置了根據(jù)對(duì)包名、密碼、操作類型信息等信息進(jìn)行驗(yàn)證的完備的權(quán)限驗(yàn)證規(guī)則,并提供了與所述驗(yàn)證規(guī)則對(duì)應(yīng)的驗(yàn)證算法,用于對(duì)其他的程序的請(qǐng)求進(jìn)行驗(yàn)證,如對(duì)所述第二程序的包名、所述第二程序提供的密碼、操作類型信息進(jìn)行驗(yàn)證。
[0052]例如,在所述第一程序的對(duì)應(yīng)目錄的下保存有包含包名、密碼和操作類型的白名單,首先獲取發(fā)出數(shù)據(jù)共享請(qǐng)求的所述第二程序的包名,判斷所述白名單中的包名中是否存在所述包名,若是則判斷所述操作類型信息是否與所述白名單中所述包名對(duì)應(yīng)的操作類型相匹配,若是則進(jìn)一步判斷所述密碼是否與所述白名單中所述包名對(duì)應(yīng)的密碼相匹配,若是則判斷驗(yàn)證成功,否則判斷驗(yàn)證失敗。
[0053]S303、判斷驗(yàn)證是否成功,若是則執(zhí)行步驟S304,否則執(zhí)行步驟S305。
[0054]S304、第一程序根據(jù)定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄信息,將所述目錄信息發(fā)送給第二程序,結(jié)束。因?yàn)樗龆ㄎ恍畔⒖梢允前?qǐng)求的數(shù)據(jù)的相對(duì)路徑,也可以包含所請(qǐng)求的數(shù)據(jù)的絕對(duì)路徑。
[0055]若所述定位信息是包含所請(qǐng)求的數(shù)據(jù)的絕對(duì)路徑時(shí),假設(shè)有一個(gè)基本的UR1:協(xié)議://域名/目錄a/目錄b/文件C,則所述定位信息即為所請(qǐng)求的數(shù)據(jù)的目錄信息。
[0056]若所述定位信息是包含所請(qǐng)求的數(shù)據(jù)的相對(duì)路徑時(shí),根據(jù)定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄信息。
[0057]例如定位信息為相對(duì)通用資源標(biāo)識(shí)符URI,因?yàn)橄鄬?duì)URI不包含任何命名規(guī)范信息,它的路徑通常指同一臺(tái)機(jī)器上的資源,可能含有相對(duì)路徑(如,.”表示上一層路徑),還可能包含片段標(biāo)志符。
[0058]若定位信息中使用了相對(duì)URI,記錄為文件D”,它擴(kuò)展成完全的URI就是“協(xié)議://域名/目錄a/文件D”,又如一個(gè)圖像的相對(duì)URI:<IMG src=〃/icons/log0.gif〃alt=〃logo〃>,它擴(kuò)展成完全的URI就是“協(xié)議://域名/巨錄a/icons/log0.gif”。
[0059]S305、不獲取目錄信息,結(jié)束。
[0060]圖2是所述的第一程序與第二程序的交互示意圖本,如圖2所示,所述第一程序向所述第二程序發(fā)送目錄信息后,所述第二程序根據(jù)所述目錄信息對(duì)相應(yīng)目錄下的數(shù)據(jù)進(jìn)行操作。
[0061]其中,所述第二程序?qū)λ?qǐng)求的數(shù)據(jù)的具體的操作可包括增、刪、改、查等操作。
[0062]以下簡(jiǎn)要說(shuō)明安卓操作系統(tǒng)(Android操作系統(tǒng),一種用于智能移動(dòng)終端的操作系統(tǒng))通過(guò)內(nèi)容提供器(ContentProvider組件)來(lái)實(shí)現(xiàn)本實(shí)施例所述的移動(dòng)終端中程序間共享數(shù)據(jù)的方法,安卓操作系統(tǒng)中的內(nèi)容提供器可支持在多個(gè)應(yīng)用中存儲(chǔ)和讀取數(shù)據(jù),也是跨應(yīng)用共享數(shù)據(jù)的唯一方式。
[0063]程序A和程序B的程序類型不限,僅要求安裝于同一移動(dòng)終端即可,可均為桌面應(yīng)用程序(例如通訊錄、日記軟件、理財(cái)軟件等),也可均為網(wǎng)站的客戶端程序(例如微博、瀏覽器等),也可一個(gè)為桌面應(yīng)用程序一個(gè)為網(wǎng)站客戶端程序。
[0064]要實(shí)現(xiàn)程序A請(qǐng)求訪問(wèn)程序B的數(shù)據(jù)庫(kù)、用戶信息和/或設(shè)置信息等數(shù)據(jù),程序B需提供一個(gè)內(nèi)容提供器(安卓操作系統(tǒng)中的Content Provider組件,為存儲(chǔ)和獲取數(shù)據(jù)提供了統(tǒng)一的接口),并實(shí)現(xiàn)打開文件的接口 openFile接口。
[0065]安卓操作系統(tǒng)為常見的一些數(shù)據(jù)提供了默認(rèn)的內(nèi)容提供器ContentP1Vider(包括音頻、視頻、圖片和通訊錄等),內(nèi)容提供器ContentProvider所提供的函數(shù)包括:query O , insert O , update O , delete (), getType (), onCreate ()等。每一個(gè)內(nèi)容提供器ContentProvider都擁有一個(gè)公共的通用資源標(biāo)識(shí)符URI,這個(gè)通用資源標(biāo)識(shí)符URI用于表示這個(gè)內(nèi)容提供器ContentProvider所提供的數(shù)據(jù)。
[0066]安卓操作系統(tǒng)所提供的內(nèi)容提供器ContentProvider都存放在“android,provider,,包中。“Content://com.example, transportat1nprovider/trains/122,,,將其分為4個(gè)部分:
[0067]“content://”為標(biāo)準(zhǔn)前綴,用來(lái)說(shuō)明一個(gè)內(nèi)容提供器ContentProvider控制這些數(shù)據(jù),無(wú)法改變的;
[0068]“com.example, transportat1nprovider” 為通用資源標(biāo)識(shí)符 URI 的標(biāo)識(shí),它定義了是哪個(gè)內(nèi)容提供器Content Provider提供這些數(shù)據(jù)。對(duì)于第三方應(yīng)用程序,為了保證通用資源標(biāo)識(shí)符URI標(biāo)識(shí)的唯一性,它必須是一個(gè)完整的、小寫的類名。
[0069]“trains”為路徑,通俗的講就是你要操作的數(shù)據(jù)庫(kù)中表的名字,該名字也可以自己定義。
[0070]“122”表示數(shù)據(jù)標(biāo)識(shí)(如數(shù)據(jù)的ID)。如果沒有數(shù)據(jù)標(biāo)識(shí),就表示返回全部。
[0071]openFile接口中可傳入一個(gè)類型為通用資源標(biāo)識(shí)符URI類型的參數(shù),這個(gè)URI類型的能數(shù)可以自己定義格式,比如可以把它定義為一個(gè)打開文件的操作,并且隨帶一個(gè)文件路徑。程序A需要訪問(wèn)程序B中的數(shù)據(jù)時(shí),通過(guò)ContentResolver (安卓操作系統(tǒng)中一個(gè)用來(lái)實(shí)現(xiàn)應(yīng)用程序之間數(shù)據(jù)共享的類)的openlnputStream (安卓操作系統(tǒng)中一個(gè)打開數(shù)據(jù)流的方法函數(shù)),同時(shí)傳入預(yù)先定義好的通用資源標(biāo)識(shí)符URI,此時(shí)安卓操作系統(tǒng)會(huì)調(diào)度到程序B實(shí)現(xiàn)的內(nèi)容提供器(Content Provider組件)。應(yīng)用B在處理這個(gè)通用資源標(biāo)識(shí)符URI時(shí),通過(guò)文件路徑找到數(shù)據(jù)目錄(通常為應(yīng)用B的data目錄)下的文件,并打開,返回ParcelFileDescriptor (安卓操作系統(tǒng)中的一個(gè)類)描述。這樣就實(shí)現(xiàn)了程序A訪問(wèn)程序B的數(shù)據(jù)文件。這個(gè)文件可以是一個(gè)數(shù)據(jù)庫(kù)文件,或者一個(gè)SharedPreferences (安卓操作系統(tǒng)中一種數(shù)據(jù)存儲(chǔ)格式)文件,或者一個(gè)自己定義的文件,應(yīng)用A可自行處理返回的InputStream (安卓操作系統(tǒng)一個(gè)用于讀取文件的方法函數(shù))。
[0072]內(nèi)容提供器是應(yīng)用程序之間共享數(shù)據(jù)的接口,安卓操作系統(tǒng)將這種機(jī)制應(yīng)用到方方面面。比如:提供聯(lián)系人共享數(shù)據(jù)專為不同應(yīng)用程序提供聯(lián)系人數(shù)據(jù);提供系統(tǒng)配置共享數(shù)據(jù)專為不同應(yīng)用程序提供系統(tǒng)配置信息,包括內(nèi)置的設(shè)置應(yīng)用程序等。
[0073]與實(shí)施例一相比,本實(shí)施例具體通過(guò)以包括包名、密碼、操作類型信息的驗(yàn)證信息為例,通過(guò)在向其他程序共享數(shù)據(jù)之前先按照預(yù)設(shè)的權(quán)限驗(yàn)證規(guī)則對(duì)所述包名、密碼、操作類型信息進(jìn)行驗(yàn)證,若驗(yàn)證成功,再根據(jù)提出共享請(qǐng)求的程序所提供的定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄信息,以使所述請(qǐng)求數(shù)據(jù)的程序根據(jù)所述目錄信息對(duì)相應(yīng)目錄下的數(shù)據(jù)進(jìn)行操作,能進(jìn)一步提高數(shù)據(jù)共享的安全性。
[0074]實(shí)施例三
[0075]以下為本發(fā)明實(shí)施例的移動(dòng)終端中程序間共享數(shù)據(jù)的裝置實(shí)施例,本實(shí)施例與實(shí)施例一所述的移動(dòng)終端中程序間共享數(shù)據(jù)的方法和實(shí)施例二所述的移動(dòng)終端中程序間共享數(shù)據(jù)的方法屬于一個(gè)總的發(fā)明構(gòu)思,在本實(shí)施例中未詳盡描述的細(xì)節(jié)內(nèi)容,可以參考上述實(shí)施例一和實(shí)施例二。
[0076]圖4是本實(shí)施例所述的移動(dòng)終端中程序間共享數(shù)據(jù)的裝置的結(jié)構(gòu)框圖,如圖4所示,本實(shí)施例所述的移動(dòng)終端中程序間共享數(shù)據(jù)的裝置包括:
[0077]請(qǐng)求接收單元401,用于第一程序接收第二程序發(fā)送的數(shù)據(jù)請(qǐng)求,所述數(shù)據(jù)請(qǐng)求包括驗(yàn)證信息和所請(qǐng)求的數(shù)據(jù)的定位信息。
[0078]兩個(gè)應(yīng)用程序之間要進(jìn)行互相通信,首先得建立連接(例如TCP連接),移動(dòng)終端中的所述第二程序與所述移動(dòng)終端中的所述第一程序建立連接后,向所述第一程序發(fā)送數(shù)據(jù)請(qǐng)求,所述數(shù)據(jù)請(qǐng)求包括驗(yàn)證信息和所請(qǐng)求的數(shù)據(jù)的定位信息。
[0079]所述所請(qǐng)求的數(shù)據(jù)包括普通文件、圖片、音頻、視頻、數(shù)據(jù)庫(kù)和/或配置文件等。
[0080]所述驗(yàn)證信息可為簽名、包名和/或預(yù)設(shè)密碼等類型,為了保證數(shù)據(jù)安全,通常不同的發(fā)出數(shù)據(jù)共享請(qǐng)求的應(yīng)用程序,其具體的驗(yàn)證信息不同。在提供共享數(shù)據(jù)的應(yīng)用程序端,預(yù)先設(shè)置了完備的權(quán)限驗(yàn)證規(guī)則,以及提供了與所述驗(yàn)證規(guī)則對(duì)應(yīng)的驗(yàn)證算法,用于分別對(duì)提出數(shù)據(jù)共享請(qǐng)求的應(yīng)用程序所提供的驗(yàn)證信息進(jìn)行驗(yàn)證。
[0081]驗(yàn)證單元402,用于所述第一程序根據(jù)所述驗(yàn)證信息對(duì)所述數(shù)據(jù)請(qǐng)求進(jìn)行驗(yàn)證。
[0082]例如在提供共享數(shù)據(jù)的應(yīng)用程序端(第一程序),保存有根據(jù)包名的白名單,以及該白名單中的各包名對(duì)應(yīng)的簽名。預(yù)先設(shè)置了驗(yàn)證規(guī)則:首先判斷提出數(shù)據(jù)共享請(qǐng)求的應(yīng)用程序的包名是否在所述白名單中,若是則進(jìn)一步判斷提供的簽名與所述包名對(duì)應(yīng)的簽名是否匹配,若是則判斷驗(yàn)證成功,否則判斷驗(yàn)證失敗。
[0083]又如在提供共享數(shù)據(jù)的應(yīng)用程序端(第一程序),保存有根據(jù)包名的黑名單,預(yù)先設(shè)置了驗(yàn)證規(guī)則:首先判斷提出數(shù)據(jù)共享請(qǐng)求的應(yīng)用程序的包名是否在所述黑名單中,若是則判斷驗(yàn)證失??;否則進(jìn)一步判斷提供的簽名是否有效,若是則判斷驗(yàn)證成功,否則判斷驗(yàn)證失敗。
[0084]目錄信息獲取與發(fā)送單元403,用于若驗(yàn)證成功,則所述第一程序根據(jù)所述定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄,將所述目錄返回給所述第二程序,以使所述第二程序?qū)λ瞿夸浵碌臄?shù)據(jù)進(jìn)行操作。
[0085]因?yàn)樗龆ㄎ恍畔⒖梢允前?qǐng)求的數(shù)據(jù)的相對(duì)路徑,也可以包含所請(qǐng)求的數(shù)據(jù)的絕對(duì)路徑。
[0086]若所述定位信息是包含所請(qǐng)求的數(shù)據(jù)的絕對(duì)路徑時(shí),假設(shè)有一個(gè)基本的UR1:協(xié)議://域名/目錄a/目錄b/文件C,則所述定位信息即為所請(qǐng)求的數(shù)據(jù)的目錄信息。
[0087]若所述定位信息是包含所請(qǐng)求的數(shù)據(jù)的相對(duì)路徑時(shí),根據(jù)定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄信息。
[0088]例如定位信息為相對(duì)通用資源標(biāo)識(shí)符URI,因?yàn)橄鄬?duì)URI不包含任何命名規(guī)范信息,它的路徑通常指同一臺(tái)機(jī)器上的資源,可能含有相對(duì)路徑(如,.”表示上一層路徑),還可能包含片段標(biāo)志符。
[0089]若定位信息中使用了相對(duì)URI,記錄為文件D”,它擴(kuò)展成完全的URI就是“協(xié)議://域名/目錄a/文件D”,又如一個(gè)圖像的相對(duì)URI:<IMG src=〃/icons/log0.gif〃alt=〃logo〃>,它擴(kuò)展成完全的URI就是“協(xié)議://域名/巨錄a/icons/log0.gif”。
[0090]若驗(yàn)證成功,則所述第一程序根據(jù)所述定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄,將所述目錄通過(guò)接口共享給所述第二程序,以使所述第二程序?qū)λ瞿夸浵碌臄?shù)據(jù)進(jìn)行操作。
[0091]進(jìn)一步地,所述請(qǐng)求接收單元401所接收的所述驗(yàn)證信息包括簽名、包名和/或預(yù)設(shè)密碼。進(jìn)一步地,所述請(qǐng)求接收單元所接收的所述驗(yàn)證信息還包括請(qǐng)求的操作類型信息。
[0092]進(jìn)一步地,所述請(qǐng)求接收單元401所接收的所述定位信息為通用資源標(biāo)識(shí)符。
[0093]進(jìn)一步地,所述請(qǐng)求接收單元401所接收的所述所請(qǐng)求的所述數(shù)據(jù)包括所述第一程序所管理的數(shù)據(jù)庫(kù)和/或用于所述第一程序的配置文件。
[0094]本發(fā)明實(shí)施例通過(guò)在向其他程序共享數(shù)據(jù)之前先按照預(yù)設(shè)的權(quán)限驗(yàn)證規(guī)則進(jìn)行驗(yàn)證,若驗(yàn)證成功,再根據(jù)提出共享請(qǐng)求的程序所提供的定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄信息,以使所述請(qǐng)求數(shù)據(jù)的程序根據(jù)所述目錄信息對(duì)相應(yīng)目錄下的數(shù)據(jù)進(jìn)行操作,能提高數(shù)據(jù)共享的安全性。
[0095]以上實(shí)施例提供的技術(shù)方案中的全部或部分內(nèi)容可以通過(guò)軟件編程實(shí)現(xiàn),其軟件程序存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)例如:計(jì)算機(jī)中的硬盤、光盤或軟盤。
[0096]注意,上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會(huì)理解,本發(fā)明不限于這里所述的特定實(shí)施例,對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會(huì)脫離本發(fā)明的保護(hù)范圍。因此,雖然通過(guò)以上實(shí)施例對(duì)本發(fā)明進(jìn)行了較為詳細(xì)的說(shuō)明,但是本發(fā)明不僅僅限于以上實(shí)施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實(shí)施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。
【權(quán)利要求】
1.一種移動(dòng)終端中程序間共享數(shù)據(jù)的方法,其特征在于,包括: 移動(dòng)終端中的第一程序接收所述移動(dòng)終端中的第二程序發(fā)送的數(shù)據(jù)請(qǐng)求,所述數(shù)據(jù)請(qǐng)求包括驗(yàn)證信息和所請(qǐng)求的數(shù)據(jù)的定位信息; 所述第一程序按照預(yù)設(shè)的權(quán)限驗(yàn)證規(guī)則對(duì)所述驗(yàn)證信息進(jìn)行驗(yàn)證; 若驗(yàn)證成功,則所述第一程序根據(jù)所述定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄信息,將所述目錄信息發(fā)送給所述第二程序,以使所述第二程序根據(jù)所述目錄信息對(duì)相應(yīng)目錄下的數(shù)據(jù)進(jìn)行操作。
2.如權(quán)利要求1所述的移動(dòng)終端中程序間共享數(shù)據(jù)的方法,其特征在于,所述驗(yàn)證信息包括簽名、包名和/或預(yù)設(shè)密碼。
3.如權(quán)利要求2所述的移動(dòng)終端中程序間共享數(shù)據(jù)的方法,其特征在于,所述驗(yàn)證信息還包括請(qǐng)求的操作類型信息。
4.如權(quán)利要求1所述的移動(dòng)終端中程序間共享數(shù)據(jù)的方法,其特征在于,所述定位信息為通用資源標(biāo)識(shí)符。
5.如權(quán)利要求1所述的移動(dòng)終端中程序間共享數(shù)據(jù)的方法,其特征在于,所請(qǐng)求的所述數(shù)據(jù)包括所述第一程序所管理的數(shù)據(jù)庫(kù)和/或用于所述第一程序的配置文件。
6.一種移動(dòng)終端中程序間共享數(shù)據(jù)的裝置,其特征在于,包括: 請(qǐng)求接收單元,用于移動(dòng)終端中的第一程序接收所述移動(dòng)終端中的第二程序發(fā)送的數(shù)據(jù)請(qǐng)求,所述數(shù)據(jù)請(qǐng)求包括驗(yàn)證信息和所請(qǐng)求的數(shù)據(jù)的定位信息; 驗(yàn)證單元,用于所述第一程序按照預(yù)設(shè)的權(quán)限驗(yàn)證規(guī)則對(duì)所述驗(yàn)證信息進(jìn)行驗(yàn)證; 目錄信息獲取與發(fā)送單元,用于若驗(yàn)證成功,則所述第一程序根據(jù)所述定位信息獲取所請(qǐng)求的數(shù)據(jù)的目錄信息,將所述目錄信息發(fā)送給所述第二程序,以使所述第二程序根據(jù)所述目錄信息對(duì)相應(yīng)目錄下的數(shù)據(jù)進(jìn)行操作。
7.如權(quán)利要求6所述的移動(dòng)終端中程序間共享數(shù)據(jù)的裝置,其特征在于,所述驗(yàn)證信息包括簽名、包名和/或預(yù)設(shè)密碼。
8.如權(quán)利要求7所述的移動(dòng)終端中程序間共享數(shù)據(jù)的裝置,其特征在于,所述驗(yàn)證信息還包括請(qǐng)求的操作類型信息。
9.如權(quán)利要求6所述的移動(dòng)終端中程序間共享數(shù)據(jù)的裝置,其特征在于,所述定位信息為通用資源標(biāo)識(shí)符。
10.如權(quán)利要求6所述的移動(dòng)終端中程序間共享數(shù)據(jù)的裝置,其特征在于,所述所請(qǐng)求的所述數(shù)據(jù)包括所述第一程序所管理的數(shù)據(jù)庫(kù)和/或用于所述第一程序的配置文件。
11.一種移動(dòng)終端,其特征在于,包括如權(quán)利要求6至10之一所述的移動(dòng)終端中程序間共享數(shù)據(jù)的裝置。
【文檔編號(hào)】H04L9/32GK104348895SQ201310347456
【公開日】2015年2月11日 申請(qǐng)日期:2013年8月9日 優(yōu)先權(quán)日:2013年8月9日
【發(fā)明者】姜磊, 游舉國(guó), 阮宜德, 鄧?yán)? 關(guān)磊 申請(qǐng)人:騰訊科技(深圳)有限公司