一種Android系統(tǒng)中應(yīng)用程序之間廣播消息的收發(fā)方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種Android系統(tǒng)中的廣播消息安全機(jī)制,尤其涉及一種Android系 統(tǒng)中應(yīng)用程序之間廣播消息的收發(fā)方法及系統(tǒng)。
【背景技術(shù)】
[0002] Android系統(tǒng)中廣播是一種廣泛運(yùn)用在應(yīng)用程序之間傳輸信息的機(jī)制,Android 中的廣播用于監(jiān)聽系統(tǒng)事件或應(yīng)用程序事件。
[0003] Android系統(tǒng)的廣播消息屬于開放性質(zhì)的,任何應(yīng)用程序都可以通過實(shí)現(xiàn)廣播接 收器來(lái)接收廣播消息,任何應(yīng)用程序都可以通過系統(tǒng)提供的接口發(fā)送廣播消息。這樣會(huì)導(dǎo) 致不懷好意的第三方應(yīng)用程序會(huì)監(jiān)聽到正常應(yīng)用程序的廣播消息,同時(shí)發(fā)送假冒的廣播消 息干擾正常應(yīng)用程序的運(yùn)行,嚴(yán)重影響了 Android系統(tǒng)的安全性。Android系統(tǒng)提供了多 種方法來(lái)避免上述情況,但顯然不夠完善,比如允許廣播發(fā)送方指定特定的廣播接收器、允 許廣播消息指定接收方的應(yīng)用程序、只允許廣播消息在廣播發(fā)送方應(yīng)用程序內(nèi)部傳遞,但 這些并不能保證廣播消息的安全性。第三方應(yīng)用程序還是可以發(fā)送假冒的廣播消息干擾正 常應(yīng)用程序的運(yùn)行,廣播消息的發(fā)送方無(wú)法同時(shí)指定多個(gè)應(yīng)用程序來(lái)接收廣播消息,導(dǎo)致 多應(yīng)用程序之間的廣播消息無(wú)法安全傳輸和接收。比如同一家公司開發(fā)了多個(gè)應(yīng)用程序, 需要在這多個(gè)應(yīng)用程序之間傳遞廣播消息,但又不允許其他未知應(yīng)用程序接收到該廣播消 息,現(xiàn)有的Android系統(tǒng)無(wú)法完成該功能。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的,就是提供一種Android系統(tǒng)中應(yīng)用程序之間廣播消息的收發(fā)方法 及系統(tǒng),發(fā)送廣播消息時(shí),能夠指定多個(gè)允許接收的應(yīng)用程序,避免第三方未知應(yīng)用程序 竊取到廣播消息,接收廣播消息時(shí),能夠指定廣播消息發(fā)送的應(yīng)用程序,以避免接收到假冒 的廣播消息,干擾到本應(yīng)用程序的運(yùn)行。
[0005] 本發(fā)明提供一種Android系統(tǒng)中應(yīng)用程序之間廣播消息的收發(fā)方法,
[0006] 具體步驟為:
[0007] Sl廣播接收方,向活動(dòng)管理服務(wù)注冊(cè)廣播接收器,注冊(cè)信息中包含有廣播接收方 包名;
[0008] S2廣播發(fā)送方,發(fā)送包含廣播發(fā)送方包名的廣播消息;
[0009] S3活動(dòng)管理服務(wù),通過廣播發(fā)送方包名和/或廣播接收方包名驗(yàn)證方式,確定廣 播接收器是否接收廣播消息;
[0010] 若驗(yàn)證通過,進(jìn)入步驟S4,若驗(yàn)證失敗,廣播接收器不接收廣播消息;
[0011] S4廣播接收方通過所述廣播接收器接收廣播消息。
[0012] 現(xiàn)在Android系統(tǒng)中廣播消息發(fā)送和廣播消息接收,只要廣播發(fā)送方指定的 Action和廣播接收方注冊(cè)消息中的Action -致就可以進(jìn)行廣播消息接收。這種方式存在 廣播消息被其它應(yīng)用程序竊取或收到假冒的廣播消息而干擾到廣播接收方的運(yùn)行的情況。
[0013] 應(yīng)用程序的包名在Android系統(tǒng)層面具有唯一性,可以用來(lái)標(biāo)識(shí)應(yīng)用程序,在本 方案中,通過增加應(yīng)用程序包名的驗(yàn)證方式,達(dá)到更加準(zhǔn)確的消息發(fā)送與消息接收。
[0014] 優(yōu)選的,
[0015] 在Sl步驟中,廣播接收方注冊(cè)廣播接收器時(shí),設(shè)置允許接收的廣播發(fā)送方包名構(gòu) 成的第一包名列表;
[0016] 在S3步驟中,活動(dòng)管理服務(wù)將廣播發(fā)送方包名與所述第一包名列表匹配,若匹配 成功,進(jìn)入步驟S4,若匹配失敗,廣播接收方不接收廣播消息。
[0017] 過這種方式,可以避免接收到假冒的廣播消息,干擾到本應(yīng)用程序的運(yùn)行。
[0018] 優(yōu)選的,
[0019] 在S2步驟中,廣播發(fā)送方發(fā)送廣播消息時(shí),發(fā)送信息包含允許接收廣播消息的廣 播接收方包名構(gòu)成的第二包名列表;
[0020] 在S2步驟之后還包括步驟:
[0021] S31,活動(dòng)管理服務(wù),將廣播接收方包名與所述第二包名列表匹配,若匹配成功進(jìn) 入步驟S4,若匹配失敗,廣播接收方不接收廣播消息。
[0022] 通過以上驗(yàn)證方式,在發(fā)送廣播消息時(shí),能夠指定多個(gè)允許接收的應(yīng)用程序,避免 第三方未知應(yīng)用程序竊取到廣播消息。
[0023] 優(yōu)選的,注冊(cè)廣播接收器是動(dòng)態(tài)注冊(cè)和/或靜態(tài)注冊(cè)。
[0024] 優(yōu)選的,當(dāng)所述廣播接收方啟動(dòng)時(shí),活動(dòng)管理服務(wù)解析所述靜態(tài)注冊(cè)的文件,提取 和保存廣播接收器的相關(guān)信息,當(dāng)所述廣播接收方關(guān)閉時(shí),活動(dòng)管理服務(wù)刪除廣播接收器 的相關(guān)信息。
[0025] 本發(fā)明還提供一種Android系統(tǒng)中應(yīng)用程序之間廣播消息的收發(fā)系統(tǒng),其特征在 于,包括廣播發(fā)送方,廣播接收方,系統(tǒng)的活動(dòng)管理服務(wù),
[0026] 廣播發(fā)送方包括:
[0027] 發(fā)送調(diào)用模塊,用于調(diào)用活動(dòng)管理服務(wù)所提供的廣播消息發(fā)送函數(shù),并將廣播消 息具體信息組織在參數(shù)中;
[0028] 廣播接收方包括:
[0029] 注冊(cè)模塊,向活動(dòng)管理服務(wù)注冊(cè)廣播接收器,注冊(cè)信息中包含有廣播接收方包 名;
[0030] 接收模塊,用于通過廣播接收器接收廣播消息,活動(dòng)管理服務(wù)包括:
[0031] 廣播消息發(fā)送模塊,用于接受廣播發(fā)送方調(diào)用廣播消息發(fā)送函數(shù),并發(fā)送廣播消 息;
[0032] 接受注冊(cè)模塊,用于接受廣播接收方所注冊(cè)的信息;
[0033] 注冊(cè)信息解析模塊,用于解析所注冊(cè)的信息;
[0034] 包名驗(yàn)證模塊,用于對(duì)廣播發(fā)送方包名和/或廣播接收方包名進(jìn)行驗(yàn)證,若包名 驗(yàn)證通過,廣播消息處理模塊處理廣播消息,若驗(yàn)證失敗,接收模塊不接收廣播消息;
[0035] 廣播消息處理模塊,用于處理廣播消息,當(dāng)廣播發(fā)送方發(fā)送廣播消息后,廣播消 息處理模塊根據(jù)系統(tǒng)驗(yàn)證規(guī)則及包名驗(yàn)證模塊的驗(yàn)證結(jié)果,將廣播消息發(fā)送給具體廣播接 收器。
[0036] 優(yōu)選的,
[0037] 廣播消息注冊(cè)模塊中,還包含:
[0038] 第一包名添加子模塊,用于添加允許接收廣播發(fā)送方包名,構(gòu)成第一包名列表;
[0039] 包名驗(yàn)證模塊還包含:
[0040] 第一驗(yàn)證子模塊,用于匹配廣播發(fā)送方包名與所述第一包名列表。
[0041] 優(yōu)選的,
[0042] 消息發(fā)送調(diào)用模塊還包含:
[0043] 第二包名添加子模塊,用于添加允許接收廣播發(fā)送方包名,構(gòu)成第二包名列表;
[0044] 包名驗(yàn)證模塊還包含:
[0045] 第二驗(yàn)證子模塊,用于匹配廣播接收方包名與所述第二包名列表。
[0046] 優(yōu)選的,
[0047] 廣播消息注冊(cè)模塊包含靜態(tài)注冊(cè)子模塊和動(dòng)態(tài)注冊(cè)子模塊。
[0048] 優(yōu)選的,
[0049] 注冊(cè)信息解析模塊,用于,當(dāng)所述廣播接收方啟動(dòng)時(shí),解析所述靜態(tài)注冊(cè)的文件, 提取和保存廣播接收器的相關(guān)信息,當(dāng)所述廣播接收方關(guān)閉時(shí),刪除廣播接收器的相關(guān)信 息。
[0050] 廣播接收方注冊(cè)廣播接收器時(shí),設(shè)置允許接收廣播發(fā)送方包名構(gòu)成的第一包名列 表,廣播發(fā)送方包名與第一包名列表匹配成功時(shí),廣播接收方通過所述廣播接收器接收廣 播消息,通過指定廣播發(fā)送方,以避免接收到假冒的廣播消息,干擾到本應(yīng)用程序的運(yùn)行; 廣播發(fā)送方發(fā)送廣播消息時(shí),發(fā)送信息包含允許接收廣播消息的廣播接收方包名構(gòu)成的第 二包名列表,廣播接收方包名與所述第二包名列表匹配成功時(shí),廣播接收方通過所述廣播 接收器接收廣播消息,通過指定多個(gè)廣播接收方,避免第三方未知應(yīng)用程序竊取到廣播消 息。
【附圖說明】
[0051] 圖1為本發(fā)明一種Android系統(tǒng)中應(yīng)用程序之間廣播消息的收發(fā)方法第一實(shí)施例 流程示意圖;
[0052] 圖2為本發(fā)明一種Android系統(tǒng)中應(yīng)用程序之間廣播消息的收發(fā)系統(tǒng)第一實(shí)施例 結(jié)構(gòu)示意圖;
[0053] 圖3為本發(fā)明一種Android系統(tǒng)中應(yīng)用程序之間廣播消息的收發(fā)方法第二實(shí)施例 流程示意圖;
[0054] 圖4為本發(fā)明一種Android系統(tǒng)中應(yīng)用程序之間廣播消息的收發(fā)系統(tǒng)第二實(shí)施例 結(jié)構(gòu)示意圖;
[0055] 圖5為本發(fā)明一種Android系統(tǒng)中應(yīng)用程序之間廣播消息的收發(fā)方法第三實(shí)施例 流程示意圖;
[0056] 圖6為本發(fā)明一種Android系統(tǒng)中應(yīng)用程序之間廣播消息的收發(fā)系統(tǒng)第三實(shí)施例 結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0057] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0058] 實(shí)施例一:
[0059] 本實(shí)施例提供一種Android系統(tǒng)中應(yīng)用程序之間廣播消息的收發(fā)方法。
[0060] 在Android系統(tǒng)中,廣播是一種廣泛運(yùn)用的在應(yīng)用程序之間傳輸信息的機(jī)制。通 過廣播消息發(fā)送與接收,應(yīng)用程序之間可以相互傳遞信息,為了方便描述,我們以一次信息 傳輸為例進(jìn)行介紹,在這一次信息傳輸過程中,我們將發(fā)出廣播信息的應(yīng)用程序稱為廣播 發(fā)送方,將接收廣播信息的應(yīng)用程序稱為廣播接收方。
[0061] 現(xiàn)在Android系統(tǒng)中廣播消息發(fā)送和廣播消息接收,只要廣播發(fā)送方指定的 Action和廣播接收方注冊(cè)消息中的Action -致就可以進(jìn)行消息接收。這種方式存在廣播 消息被其它應(yīng)用程序竊取或收到假冒的廣播消息而干擾到廣播接收方的運(yùn)行的情況。
[0062] 應(yīng)用程序的包名在Android系統(tǒng)層面具有唯一性,可以用來(lái)標(biāo)識(shí)應(yīng)用程序,在本 方案中,通過增