序包名稱,即安裝程序的包名,例如程序“憤怒的小鳥”的程序包名稱是com.angrybirdo優(yōu)選的,所述步驟101可以包括:
[0067]子步驟S11、訪問移動終端安裝的操作系統(tǒng)的應(yīng)用程序接口 API,獲取當(dāng)前進程名稱列表;
[0068]子步驟S12、提取所述當(dāng)前進程名稱列表中第一項進程名稱,即為移動終端屏幕上顯示的當(dāng)前程序的程序包名稱。
[0069]操作系統(tǒng)的應(yīng)用程序接口 API是應(yīng)用程序和操作系統(tǒng)交通的接口,是系統(tǒng)提供的公知的服務(wù),包括了多個可調(diào)用的函數(shù),調(diào)用相應(yīng)的函數(shù)可以得到移動終端的各種信息。例如,此處通過調(diào)用進程列表獲取函數(shù)getRunningAppProcesses O,就可獲得系統(tǒng)當(dāng)前進程名稱列表,當(dāng)前進程名稱列表中包括了系統(tǒng)中正在運行的所有程序的程序包名稱,表中的第一項即為當(dāng)前屏幕上所顯示的程序,因此,可將第一項進程名稱作為當(dāng)前程序的程序包名稱。
[0070]步驟102、由所述相關(guān)信息判斷所述當(dāng)前程序是否為系統(tǒng)桌面主屏程序,若是,則執(zhí)行步驟103,若否,則執(zhí)行步驟104。
[0071]在本申請的一種優(yōu)選實施例的一種示例中,所述步驟102可以包括:
[0072]子步驟S21、判斷預(yù)置的系統(tǒng)桌面主屏程序列表中,是否包括所述當(dāng)前程序的程序包名稱,若是,則所述當(dāng)前程序為系統(tǒng)桌面主屏程序,若否,則所述當(dāng)前程序不是系統(tǒng)桌面主屏程序。
[0073]獲取了當(dāng)前程序的程序包名稱后,可以依據(jù)程序包名稱判斷當(dāng)前程序是否為系統(tǒng)桌面主屏程序,在本實施例的一種示例中,可以預(yù)置系統(tǒng)桌面主屏程序列表,所述系統(tǒng)桌面主屏程序列表可以包含一個或多個系統(tǒng)桌面主屏程序的程序包名稱,判斷當(dāng)前程序是否為系統(tǒng)桌面主屏程序時,只需判斷當(dāng)前程序的程序包名稱是否在此列表中,若在,則說明當(dāng)前程序為系統(tǒng)桌面主屏程序。
[0074]在具體的實現(xiàn)中,可以通過以下步驟預(yù)置所述系統(tǒng)桌面主屏程序列表:
[0075]訪問移動終端安裝的操作系統(tǒng)的應(yīng)用程序接口 API,獲取所述移動終端所有安裝程序的屬性信息;
[0076]判斷各個安裝程序的屬性信息中,是否包含CATEGORYJTOME和DEFAULT兩個屬性;
[0077]若是,則判斷該程序為系統(tǒng)桌面主屏程序,并將該程序的程序包名稱添加到系統(tǒng)桌面主屏程序列表。
[0078]程序的屬性信息包括程序名稱、程序包名稱、程序大小、路徑、擁有的服務(wù)和申請的權(quán)限等信息,系統(tǒng)桌面主屏程序區(qū)別于非系統(tǒng)桌面主屏程序的特征在于,系統(tǒng)桌面主屏程序的屬性信息中包含有CATEGORYJTOME和DEFAULT兩個屬性。因此,預(yù)置系統(tǒng)桌面主屏程序列表時,可以提取移動終端已安裝的所有程序的屬性信息,然后依據(jù)屬性信息中是否包含上述兩個屬性,來判斷該程序是否為系統(tǒng)桌面主屏程序。例如,移動終端安裝的程序中包含了程序包名稱為 com.android, launcher 和 com.angrybird 兩個程序,com.android,launcher為android操作系統(tǒng)自帶的系統(tǒng)桌面主屏程序,其屬性信息中包含了 CATEG0RY_HOME和DEFAULT兩個屬性,因此,可以將com.android, launcher添加到系統(tǒng)桌面主屏程序列表中,com.angrybird的屬性信息中不包含上述兩個屬性,貝U不添加到該列表中。
[0079]在判斷當(dāng)前程序是否為系統(tǒng)桌面主屏程序的時候,若當(dāng)前程序的程序包名稱是com.android, launcher,由該程序包名稱存在系統(tǒng)桌面主屏程序列表中,可知該程序為系統(tǒng)桌面主屏程序;若當(dāng)前程序的程序包名稱是com.angrybird,該程序包名稱不存在系統(tǒng)桌面主屏程序列表中,可知該程序不是系統(tǒng)桌面主屏程序。
[0080]具體的,可以通過訪問移動終端安裝的操作系統(tǒng)的應(yīng)用程序接口 API,此處即調(diào)用程序?qū)傩孕畔@取函數(shù)querylntentActivitiesO,可獲得所述移動終端所有安裝程序的屬性信息。
[0081]在本申請的一種優(yōu)選實施例的另一種示例中,所述步驟102可以包括:
[0082]子步驟S31、訪問移動終端安裝的操作系統(tǒng)的應(yīng)用程序接口 API,由所述當(dāng)前程序的程序包名稱,提取所述當(dāng)前程序的屬性信息;
[0083]子步驟S32、判斷所述當(dāng)前程序的屬性信息中,是否包含CATEGORYJTOME和DEFAULT兩個屬性,若是,則所述當(dāng)前程序為系統(tǒng)桌面主屏程序,若否,則所述當(dāng)前程序不是系統(tǒng)桌面主屏程序。
[0084]與上個示例不同的是,本示例不需要預(yù)置系統(tǒng)桌面主屏程序列表,在獲取了當(dāng)前程序的程序包名稱之后,通過提取當(dāng)前程序的屬性信息來進行判斷。具體的,可以通過訪問移動終端安裝的操作系統(tǒng)的應(yīng)用程序接口 API,即調(diào)用程序?qū)傩孕畔@取函數(shù)querylntentActivitiesO,依據(jù)當(dāng)前程序的程序包名稱提取當(dāng)前程序的屬性信息。然后判斷當(dāng)前程序的屬性信息中,是否包含了 CATEGORYJTOME和DEFAULT兩個屬性,若是,則判斷當(dāng)前程序為系統(tǒng)桌面主屏程序。
[0085]在本申請的一種優(yōu)選實施例中,所述方法可以按照預(yù)設(shè)頻率重復(fù)執(zhí)行,使當(dāng)前程序發(fā)生變化時,懸浮窗也相應(yīng)的隱藏或顯示。預(yù)設(shè)頻率越高,所述方法重復(fù)執(zhí)行的間隔時間越短,就可以在用戶打開第三方程序時,盡快隱藏懸浮窗。
[0086]步驟103、在屏幕上顯示目標(biāo)懸浮窗。
[0087]當(dāng)前程序為系統(tǒng)桌面主屏程序時,需要在屏幕上顯示目標(biāo)懸浮窗。在具體的實現(xiàn)中,還需要判斷當(dāng)前屏幕上是否已經(jīng)顯示了目標(biāo)懸浮窗,若有,則不執(zhí)行任何操作,若無,則在屏幕上增加位于最前端的目標(biāo)懸浮窗。
[0088]步驟104、在屏幕上不顯示目標(biāo)懸浮窗。
[0089]當(dāng)前程序不是系統(tǒng)桌面主屏程序時,不需要在屏幕上顯示目標(biāo)懸浮窗。在具體的實現(xiàn)中,還需要判斷當(dāng)前屏幕上是否已經(jīng)顯示了目標(biāo)懸浮窗,若有,則隱藏已經(jīng)顯示的目標(biāo)懸浮窗,若無,則不執(zhí)行任何操作。
[0090]在本申請的一種優(yōu)選實施例中,所述目標(biāo)懸浮窗可以用于顯示移動終端性能參數(shù),所述目標(biāo)懸浮窗內(nèi)可以包括一個用于啟動清理內(nèi)存操作的預(yù)設(shè)入口。
[0091]參考圖2,其示出了本申請的一種懸浮窗的顯示方法實施例2的流程圖,具體可以包括以下步驟:
[0092]步驟201、由移動終端安裝的操作系統(tǒng)發(fā)送的屏幕狀態(tài)信息,判斷當(dāng)前屏幕是否開啟,若是,則執(zhí)行步驟202。
[0093]與上個實施例不同的是,本實施例中,在執(zhí)行判斷桌面主屏程序的步驟之前,還需要判斷當(dāng)前屏幕是否開啟,若是,則執(zhí)行下一判斷的步驟,若否,則不執(zhí)行任何操作,避免在屏幕關(guān)閉的時候執(zhí)行判斷的操作而費電。
[0094]當(dāng)前屏幕是否開啟可以由操作系統(tǒng)發(fā)送的屏幕狀態(tài)信息獲知。具體的,可以向操作系統(tǒng)廣播注冊接口(RegisterReceiver)發(fā)送請求,要求操作系統(tǒng)在屏幕變化的時候發(fā)送屏幕狀態(tài)信息,依據(jù)屏幕狀態(tài)信息可以獲知當(dāng)前屏幕是否開啟。例如,某一時刻,屏幕由開啟轉(zhuǎn)為關(guān)閉,操作系統(tǒng)就會發(fā)出屏幕狀態(tài)轉(zhuǎn)為關(guān)閉的信息,由該信息可知當(dāng)前屏幕狀態(tài)為關(guān)閉,就不執(zhí)行判斷桌面主屏程序的步驟。
[0095]步驟202、獲取移動終端屏幕上顯示的當(dāng)前程序的相關(guān)信息;
[0096]步驟203、由所述相關(guān)信息判斷所述當(dāng)前程序是否為系統(tǒng)桌面主屏程序,若是,則執(zhí)行步驟204和步驟205,若否,則執(zhí)行步驟206 ;
[0097]步驟204、在屏幕上顯示目標(biāo)懸浮窗;
[0098]步驟205、通過所述目標(biāo)懸浮窗的預(yù)設(shè)入口訪問預(yù)設(shè)內(nèi)容或進行預(yù)設(shè)操作。
[0099]目標(biāo)懸浮窗包含了一個可以供用戶訪問的預(yù)設(shè)入口,在屏幕上顯示目標(biāo)懸浮窗后,用戶可以通過該預(yù)設(shè)入口訪問預(yù)設(shè)內(nèi)容或執(zhí)行預(yù)設(shè)操作。例如,360手機安全衛(wèi)士的懸浮窗上有一個入口,用戶點擊這個入口就可以啟動清理內(nèi)存的操作。
[0100]步驟206、在屏幕上不顯示目標(biāo)懸浮窗。
[0101]綜上所述,本申請?zhí)峁┝艘环N懸浮窗的顯示方法,依據(jù)本申請,判斷移動終端屏幕上顯示的當(dāng)前程序是否為系統(tǒng)桌面主屏程序,若否,則不顯示懸浮窗,從而使第三方非系統(tǒng)桌面主屏程序啟動時,懸浮窗可以自動隱藏,不會干擾用戶的操作。
[0102]其次,本申請還通過接收系統(tǒng)發(fā)送的屏幕狀態(tài)信息,確認當(dāng)前屏幕是否開啟,若屏幕關(guān)閉就停止判斷的操作,達到不會額外浪費電力的目的。
[0103]對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請并不受所描述的動作順序的限制,因為依據(jù)本申請,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本申請所必須的。
[0104]參考圖3,其示出了本申請的一種懸浮窗的顯示裝置實施例1的結(jié)構(gòu)框圖,具體可以包括以下t吳塊:
[0105]相關(guān)信息獲取模塊301,用于獲取移動終端屏幕上顯示的當(dāng)前程序的相關(guān)信息;
[0106]程序判斷模塊302,用于由所述相關(guān)信息判斷所述當(dāng)前程序是否為桌面主屏程序,若是,則執(zhí)行顯示模塊303,若