本發(fā)明涉及終端技術(shù)領(lǐng)域,特別涉及一種應(yīng)用的功能狀態(tài)修改方法、裝置及終端。
背景技術(shù):
隨著終端技術(shù)的發(fā)展,不同品牌的終端可以搭載不同的操作系統(tǒng),以手機(jī)為例,華為手機(jī)搭載的是EMUI系統(tǒng),小米手機(jī)搭載的是MIUI系統(tǒng),不同的操作系統(tǒng)可以具有不同的系統(tǒng)設(shè)置界面。終端上可以安裝多個(gè)應(yīng)用,每個(gè)應(yīng)用具有多種功能。對(duì)于應(yīng)用的某些功能,如開機(jī)自啟動(dòng)、桌面懸浮窗等功能,需要通過系統(tǒng)設(shè)置來修改該功能的狀態(tài),如將功能的狀態(tài)修改為啟用狀態(tài)或禁用狀態(tài)。
現(xiàn)有技術(shù)中,對(duì)于不同的操作系統(tǒng),修改應(yīng)用功能狀態(tài)的具體操作方式不同。比如,EMUI系統(tǒng)提供了系統(tǒng)設(shè)置界面,該系統(tǒng)設(shè)置界面包含對(duì)應(yīng)用的不同功能的設(shè)置選項(xiàng)。當(dāng)用戶在EMUI系統(tǒng)中開啟某一應(yīng)用的開機(jī)自啟動(dòng)功能時(shí),需要在EMUI系統(tǒng)設(shè)置界面中找到開機(jī)自啟動(dòng)的開啟選項(xiàng),進(jìn)而通過點(diǎn)擊該開啟選項(xiàng),使得終端開啟該應(yīng)用的開機(jī)自啟動(dòng)功能。
在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:對(duì)于任一種操作系統(tǒng)來說,在進(jìn)行功能狀態(tài)修改時(shí),均需要找到該狀態(tài)修改所在的系統(tǒng)設(shè)置界面,再通過對(duì)系統(tǒng)設(shè)置界面中相應(yīng)選項(xiàng)進(jìn)行狀態(tài)修改,其操作過程繁瑣,操作路徑較長。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實(shí)施例提供了一種應(yīng)用的功能狀態(tài)修改方法、裝置及終端。所述技術(shù)方案如下:
一方面,提供了一種應(yīng)用的功能狀態(tài)修改方法,所述方法包括:當(dāng)檢測(cè)到對(duì)應(yīng)用的指定功能的狀態(tài)修改操作時(shí),獲取終端系統(tǒng)標(biāo)識(shí);
根據(jù)所述終端系統(tǒng)標(biāo)識(shí),從預(yù)設(shè)指令列表中獲取目標(biāo)狀態(tài)修改指令,所述目標(biāo)狀態(tài)修改指令用于指示終端系統(tǒng)將所述指定功能設(shè)置為所述狀態(tài)修改操作對(duì)應(yīng)的狀態(tài),所述預(yù)設(shè)指令列表至少用于存儲(chǔ)至少一個(gè)終端系統(tǒng)標(biāo)識(shí)和狀態(tài)修改指令的對(duì)應(yīng)關(guān)系;
向所述終端系統(tǒng)發(fā)送所述目標(biāo)狀態(tài)修改指令,使得所述終端系統(tǒng)響應(yīng)于所述目標(biāo)狀態(tài)修改指令,將所述指定功能設(shè)置為所述狀態(tài)修改操作對(duì)應(yīng)的狀態(tài)。
另一方面,提供了一種應(yīng)用的功能狀態(tài)修改裝置,所述裝置包括:
第一獲取模塊,用于當(dāng)檢測(cè)到對(duì)應(yīng)用的指定功能的狀態(tài)修改操作時(shí),獲取終端系統(tǒng)標(biāo)識(shí);
第二獲取模塊,用于根據(jù)所述終端系統(tǒng)標(biāo)識(shí),從預(yù)設(shè)指令列表中獲取目標(biāo)狀態(tài)修改指令,所述目標(biāo)狀態(tài)修改指令用于指示終端系統(tǒng)將所述指定功能設(shè)置為所述狀態(tài)修改操作對(duì)應(yīng)的狀態(tài),所述預(yù)設(shè)指令列表至少用于存儲(chǔ)至少一個(gè)終端系統(tǒng)標(biāo)識(shí)和狀態(tài)修改指令的對(duì)應(yīng)關(guān)系;
發(fā)送模塊,用于向所述終端系統(tǒng)發(fā)送所述目標(biāo)狀態(tài)修改指令,使得所述終端系統(tǒng)響應(yīng)于所述目標(biāo)狀態(tài)修改指令,將所述指定功能設(shè)置為所述狀態(tài)修改操作對(duì)應(yīng)的狀態(tài)。
又一方面,提供了一種終端,包括:終端系統(tǒng)和上述應(yīng)用的功能狀態(tài)修改裝置。
本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:
針對(duì)應(yīng)用的功能,預(yù)先獲取到了用于存儲(chǔ)該功能的至少一個(gè)終端系統(tǒng)標(biāo)識(shí)以及對(duì)應(yīng)的狀態(tài)修改指令的預(yù)設(shè)指令列表,因此,可以在需要進(jìn)行功能狀態(tài)修改時(shí),通過觸發(fā)狀態(tài)修改操作,使得能夠從預(yù)設(shè)指令列表中獲取與當(dāng)前終端系統(tǒng)匹配的狀態(tài)修改指令,并由終端系統(tǒng)執(zhí)行該狀態(tài)修改指令,達(dá)到修改功能狀態(tài)的目的,簡化了操作過程,縮短了操作路徑。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例提供的一種應(yīng)用的功能狀態(tài)修改方法的流程圖;
圖2是本發(fā)明實(shí)施例提供的一種應(yīng)用的功能狀態(tài)修改方法的流程圖;
圖3是本發(fā)明實(shí)施例提供的一種應(yīng)用的功能狀態(tài)修改裝置的框圖;
圖4是本發(fā)明實(shí)施例提供的一種終端的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
圖1是本發(fā)明實(shí)施例提供的一種應(yīng)用的功能狀態(tài)修改方法的流程圖,參見圖1,本發(fā)明實(shí)施例提供的方法流程包括:
101、當(dāng)檢測(cè)到對(duì)應(yīng)用的指定功能的狀態(tài)修改操作時(shí),獲取終端系統(tǒng)標(biāo)識(shí)。
102、根據(jù)終端系統(tǒng)標(biāo)識(shí),從預(yù)設(shè)指令列表中獲取目標(biāo)狀態(tài)修改指令,該目標(biāo)狀態(tài)修改指令用于指示終端系統(tǒng)將指定功能設(shè)置為狀態(tài)修改操作對(duì)應(yīng)的狀態(tài),該預(yù)設(shè)指令列表至少用于存儲(chǔ)至少一個(gè)終端系統(tǒng)標(biāo)識(shí)和狀態(tài)修改指令的對(duì)應(yīng)關(guān)系。
103、向終端系統(tǒng)發(fā)送目標(biāo)狀態(tài)修改指令,使得終端系統(tǒng)響應(yīng)于目標(biāo)狀態(tài)修改指令,將指定功能設(shè)置為狀態(tài)修改操作對(duì)應(yīng)的狀態(tài)。
本發(fā)明實(shí)施例提供的方法,針對(duì)應(yīng)用的功能,預(yù)先獲取到了用于存儲(chǔ)該功能的至少一個(gè)終端系統(tǒng)標(biāo)識(shí)以及對(duì)應(yīng)的狀態(tài)修改指令的預(yù)設(shè)指令列表,因此,可以在需要進(jìn)行功能狀態(tài)修改時(shí),通過觸發(fā)狀態(tài)修改操作,使得能夠從預(yù)設(shè)指令列表中獲取與當(dāng)前終端系統(tǒng)匹配的狀態(tài)修改指令,并由終端系統(tǒng)執(zhí)行該狀態(tài)修改指令,達(dá)到修改功能狀態(tài)的目的,簡化了操作過程,縮短了操作路徑。
在一種可能的實(shí)現(xiàn)方式中,目標(biāo)狀態(tài)修改指令包含應(yīng)用的應(yīng)用標(biāo)識(shí)、指定功能的功能標(biāo)識(shí)以及目標(biāo)狀態(tài)值,目標(biāo)狀態(tài)修改指令用于指示終端系統(tǒng)將應(yīng)用的指定功能的功能標(biāo)識(shí)對(duì)應(yīng)的狀態(tài)值修改為目標(biāo)狀態(tài)值。
在一種可能的實(shí)現(xiàn)方式中,目標(biāo)狀態(tài)修改指令包含第一指令和第二指令,第一指令包含應(yīng)用的應(yīng)用標(biāo)識(shí)、指定功能的啟用列表標(biāo)識(shí)和第一操作標(biāo)識(shí),第二指令包含應(yīng)用的應(yīng)用標(biāo)識(shí)、指定功能的禁用列表標(biāo)識(shí)和第二操作標(biāo)識(shí),
當(dāng)狀態(tài)修改操作為啟用操作時(shí),第一操作標(biāo)識(shí)為添加操作標(biāo)識(shí),第二操作標(biāo)識(shí)為刪除操作標(biāo)識(shí),第一指令用于指示終端系統(tǒng)在指定功能的啟用列表中添加應(yīng)用標(biāo)識(shí),第二指令用于指示終端系統(tǒng)在指定功能的禁用列表中刪除應(yīng)用標(biāo)識(shí);或,
當(dāng)狀態(tài)修改操作為禁用操作時(shí),第一操作標(biāo)識(shí)為刪除操作標(biāo)識(shí),第二操作標(biāo)識(shí)為添加操作標(biāo)識(shí),第一指令用于指示終端系統(tǒng)在指定功能的啟用列表中刪除應(yīng)用標(biāo)識(shí),第二指令用于指示終端系統(tǒng)在指定功能的禁用列表中添加應(yīng)用標(biāo)識(shí)。
在一種可能的實(shí)現(xiàn)方式中,預(yù)設(shè)指令列表攜帶在應(yīng)用的安裝包中。
在一種可能的實(shí)現(xiàn)方式中,檢測(cè)到對(duì)應(yīng)用的指定功能的狀態(tài)修改操作之后,方法還包括:
檢測(cè)應(yīng)用是否具有對(duì)終端系統(tǒng)的root權(quán)限;
如果具有,則執(zhí)行獲取終端系統(tǒng)標(biāo)識(shí)的步驟;
如果不具有,則不響應(yīng)狀態(tài)修改操作,并顯示提示消息,提示消息用于提示應(yīng)用不具有對(duì)終端系統(tǒng)的root權(quán)限。
上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本公開的可選實(shí)施例,在此不再一一贅述。
圖2是本發(fā)明實(shí)施例提供的一種應(yīng)用的功能狀態(tài)修改方法的流程圖,參見圖2,本發(fā)明實(shí)施例提供的方法流程包括:
201、當(dāng)應(yīng)用客戶端檢測(cè)到對(duì)應(yīng)用的指定功能的狀態(tài)修改操作時(shí),檢測(cè)應(yīng)用是否具有對(duì)終端系統(tǒng)的root權(quán)限,如果是,執(zhí)行步驟202,如果否,執(zhí)行步驟206。
其中,指定功能是指需要在具有對(duì)終端系統(tǒng)root權(quán)限下進(jìn)行狀態(tài)修改的功能,比如,開機(jī)自啟動(dòng)、桌面懸浮窗等功能。
現(xiàn)有技術(shù)中,該指定功能只能通過系統(tǒng)設(shè)置來修改功能的狀態(tài)。在本發(fā)明實(shí)施例中,該應(yīng)用可以提供功能的狀態(tài)設(shè)置界面,用戶可以在該狀態(tài)設(shè)置界面觸發(fā)對(duì)指定功能的狀態(tài)修改操作。該狀態(tài)修改操作包括啟用操作和禁用操作。該啟用操作用于指示啟用該指定功能,該禁用操作用于指示禁用該指定功能。此外,用戶還可以通過該指定功能的狀態(tài)修改快捷鍵觸發(fā)狀態(tài)修改操作,本發(fā)明實(shí)施例對(duì)狀態(tài)修改操作的觸發(fā)方式不作具體限定。
為了提高終端系統(tǒng)的安全性,可以設(shè)置指定功能需要在具有對(duì)終端系統(tǒng)root權(quán)限下進(jìn)行狀態(tài)修改,因此,在應(yīng)用檢測(cè)到對(duì)指定功能的狀態(tài)修改操作時(shí),應(yīng)用需要檢測(cè)自身是否具有對(duì)終端系統(tǒng)的root權(quán)限,以便后續(xù)根據(jù)檢測(cè)結(jié)果響應(yīng)該狀態(tài)修改操作。
202、如果應(yīng)用具有對(duì)終端系統(tǒng)的root權(quán)限,則應(yīng)用客戶端獲取終端系統(tǒng)標(biāo)識(shí)。
其中,終端系統(tǒng)標(biāo)識(shí)用于唯一標(biāo)識(shí)終端所使用的系統(tǒng),該終端系統(tǒng)標(biāo)識(shí)可包含終端系統(tǒng)名稱和版本號(hào),或者該終端系統(tǒng)標(biāo)識(shí)還可以為開發(fā)人員預(yù)設(shè)的其他系統(tǒng)編號(hào),本發(fā)明實(shí)施例對(duì)此不作具體限定。應(yīng)用客戶端可以通過第一預(yù)設(shè)接口與終端系統(tǒng)進(jìn)行交互,以獲取終端系統(tǒng)標(biāo)識(shí),該第一預(yù)設(shè)接口可由終端系統(tǒng)進(jìn)行預(yù)先設(shè)定或修改,本發(fā)明實(shí)施例對(duì)此不作限定。
需要說明的是,上述步驟101和102是當(dāng)檢測(cè)到對(duì)應(yīng)用的指定功能的狀態(tài)修改操作時(shí)獲取終端系統(tǒng)標(biāo)識(shí)的一種實(shí)現(xiàn)方式,而在另一實(shí)施例中,還可以不檢測(cè)該應(yīng)用是否具有終端系統(tǒng)的root權(quán)限,而直接在檢測(cè)到狀態(tài)修改操作時(shí),獲取終端系統(tǒng)標(biāo)識(shí)。在該不進(jìn)行檢測(cè)的情況下執(zhí)行獲取步驟,可以是默認(rèn)終端系統(tǒng)中所安裝的任一個(gè)應(yīng)用均具有root權(quán)限,也可以是該狀態(tài)修改不限制應(yīng)用是否具有root權(quán)限,本發(fā)明實(shí)施例對(duì)此不作具體限定。
203、應(yīng)用客戶端根據(jù)終端系統(tǒng)標(biāo)識(shí),從預(yù)設(shè)指令列表中獲取目標(biāo)狀態(tài)修改指令。
其中,預(yù)設(shè)指令列表至少用于存儲(chǔ)至少一個(gè)終端系統(tǒng)標(biāo)識(shí)和狀態(tài)修改指令的對(duì)應(yīng)關(guān)系。該預(yù)設(shè)指令列表為指定功能的預(yù)設(shè)指令列表,也即是,該預(yù)設(shè)指令列表存儲(chǔ)的狀態(tài)修改指令用于對(duì)指定功能的狀態(tài)進(jìn)行修改。當(dāng)然,應(yīng)用的其他功能也可具有對(duì)應(yīng)的指令列表。
上述內(nèi)容是按照一個(gè)功能對(duì)應(yīng)一個(gè)指令列表舉例說明,而實(shí)際場景中,可以將多個(gè)功能的指令列表集成于一個(gè)指令列表中,也即是,應(yīng)用維護(hù)一個(gè)包含多個(gè)功能的狀態(tài)修改指令的指令列表,本發(fā)明實(shí)施例對(duì)預(yù)設(shè)列表的具體形式不作具體限定。
其中,目標(biāo)狀態(tài)修改指令用于指示終端系統(tǒng)將應(yīng)用的指定功能設(shè)置為該狀態(tài)修改操作對(duì)應(yīng)的狀態(tài)。該目標(biāo)狀態(tài)修改指令是指與終端系統(tǒng)標(biāo)識(shí)對(duì)應(yīng)的狀態(tài)修改指令。
應(yīng)用客戶端根據(jù)終端系統(tǒng)標(biāo)識(shí),從預(yù)設(shè)指令列表中獲取目標(biāo)狀態(tài)修改指令的過程可以為:當(dāng)應(yīng)用客戶端獲取到終端系統(tǒng)標(biāo)識(shí)后,在預(yù)設(shè)指令列表存儲(chǔ)的至少一個(gè)終端系統(tǒng)標(biāo)識(shí)中查找是否存在該終端系統(tǒng)標(biāo)識(shí),如果存在,則將該終端系統(tǒng)標(biāo)識(shí)對(duì)應(yīng)的狀態(tài)修改指令確定為目標(biāo)狀態(tài)修改指令。如果不存在,則不執(zhí)行該獲取操作。
需要說明的是,該預(yù)設(shè)指令列表可以攜帶在該應(yīng)用的安裝包中,使得應(yīng)用客戶端在安裝后便可從終端本地獲取到該預(yù)設(shè)指令列表?;蛘?,該預(yù)設(shè)指令列表由應(yīng)用在安裝后從服務(wù)器獲取,本發(fā)明實(shí)施例對(duì)此不作具體限定。進(jìn)一步地,應(yīng)用還可對(duì)該預(yù)設(shè)指令列表進(jìn)行更新,該更新過程可以為應(yīng)用周期性地從服務(wù)器獲取更新的預(yù)設(shè)指令列表,或者由服務(wù)器在對(duì)預(yù)設(shè)指令列表進(jìn)行更新后發(fā)送至應(yīng)用所在的終端,本發(fā)明實(shí)施例對(duì)此不作具體限定。
在本發(fā)明實(shí)施例中,可基于反編譯技術(shù)對(duì)不同終端系統(tǒng)的應(yīng)用功能狀態(tài)管理的系統(tǒng)App進(jìn)行逆向研究,從而了解指定功能的實(shí)現(xiàn)方式,進(jìn)而確認(rèn)該指定功能在不同的終端系統(tǒng)下的狀態(tài)修改指令,具體流程如下:
1、確定指定功能對(duì)應(yīng)的系統(tǒng)App。
通過指定系統(tǒng)管理軟件,執(zhí)行“adb shell dumpsys activity top”命令,獲取當(dāng)前終端系統(tǒng)的系統(tǒng)App信息,比如,終端系統(tǒng)App對(duì)應(yīng)的包名。之后,通過執(zhí)行“pm list package-f|grep+包名”命令可獲取到系統(tǒng)App的apk文件的存儲(chǔ)路徑,進(jìn)而獲取到系統(tǒng)App的apk文件。
以華為EMUI3.0系統(tǒng)為例,通過該步驟可以獲取到系統(tǒng)App的包名為com.huawei.systemmanager,App的apk文件的存儲(chǔ)路徑為/system/app/HwSystemManager.apk。
2、針對(duì)指定功能,對(duì)App的apk文件進(jìn)行反編譯,得到指定功能的狀態(tài)修改接口。
其中,進(jìn)行反編譯的工具可以為dex2jar、jd-gui、Smali2Java、apktool等,本發(fā)明實(shí)施例對(duì)此不作具體限定。
通過對(duì)指定功能進(jìn)行反編譯可以得到指定功能的狀態(tài)修改接口。比如,以在EMUI3.0系統(tǒng)中啟用應(yīng)用的桌面懸浮窗功能為例,其狀態(tài)修改接口為com.huawei.systemmanager.addviewmonitor.AddViewAppManager.setOpsMode。
3、分析反編譯得到的代碼,以確定指定功能的狀態(tài)修改接口的調(diào)用參數(shù)、以及所屬的系統(tǒng)服務(wù)。
仍以在EMUI3.0系統(tǒng)中啟用應(yīng)用的桌面懸浮窗功能為例,通過對(duì)反編譯得到的代碼,可以得到setOpsMode核心部分是調(diào)用成員變量mAppOsp的setMode方法,其調(diào)用參數(shù)包括uid,pkgname,addViewAllow。通過構(gòu)造器可以知道setOpsMode所屬的系統(tǒng)服務(wù)為mAppOsp,且其服務(wù)名為appops,也即是通過服務(wù)名appops便可調(diào)用mAppOsp系統(tǒng)服務(wù),進(jìn)而調(diào)用setOpsMode接口以實(shí)現(xiàn)指定功能的狀態(tài)修改操作。其中,uid是指該應(yīng)用的應(yīng)用編碼,pkgname是指應(yīng)用的包名,addViewAllow是指啟用桌面懸浮窗功能,其對(duì)應(yīng)的狀態(tài)值為0。
需要說明的是,在安卓系統(tǒng)中調(diào)用系統(tǒng)服務(wù)的命令是統(tǒng)一的,為service call,因此,在確定指定功能的狀態(tài)修改所屬服務(wù)以及調(diào)用接口后,可根據(jù)service call命令構(gòu)造指定功能的狀態(tài)修改指令。
4、構(gòu)造指定功能的狀態(tài)修改指令。
通過service list命令,獲取appops服務(wù)下setOpsMode接口的業(yè)務(wù)碼以及桌面懸浮窗功能的業(yè)務(wù)碼。根據(jù)該setOpsMode接口的業(yè)務(wù)碼以及setMode方法的調(diào)用參數(shù),構(gòu)造應(yīng)用的指定功能的狀態(tài)修改指令。以應(yīng)用為qq音樂開啟桌面懸浮窗功能為例,該qq音樂的uid為10088,包名為“com.tencent.qqmusic”,則構(gòu)造出來的命令為:
service call appops 11i32 24i32 10088s16"com.tencent.qqmusic"i32 0。
其中,“11”表示setOpsMode接口的業(yè)務(wù)碼,“24”桌面懸浮窗功能的業(yè)務(wù)碼。“i32”表示“i32”之后的調(diào)用參數(shù)的數(shù)據(jù)類型為整型;“s16”表示“s16”之后的調(diào)用參數(shù)為字符型?!?”表示將狀態(tài)值修改為0,也即為啟用懸浮窗功能。
該構(gòu)造出來的命令即為在華為EMUI3.0系統(tǒng)中,用于啟用qq音樂的桌面懸浮窗功能的狀態(tài)修改指令。通過構(gòu)造出來的狀態(tài)修改指令可以得出,類似桌面懸浮窗功能的狀態(tài)修改指令中包含應(yīng)用的應(yīng)用標(biāo)識(shí)、指定功能的功能標(biāo)識(shí)以及目標(biāo)狀態(tài)值。
此外,由于并不是所有的功能都通過系統(tǒng)服務(wù)來管理的,也即是不是所有的功能都可以用service call命令調(diào)用系統(tǒng)服務(wù)來構(gòu)造,一些功能的狀態(tài)修改是通過相應(yīng)的功能管理類來實(shí)現(xiàn)的。比如,通過上述1、2、3步驟可以獲知開機(jī)自啟動(dòng)功能的狀態(tài)修改是通過自啟管理類com.huawei.systemmanager.optimize.bootstart.BootStartManager來實(shí)現(xiàn)的。通過反編譯代碼可以在BootStartManager類中找到allowAppStartup和forbidAppStartup兩個(gè)方法,對(duì)應(yīng)的操作分別是允許開機(jī)自啟動(dòng)和禁止開機(jī)自啟動(dòng)的操作。且這兩個(gè)方法是通過操作ContentProvider來進(jìn)行數(shù)據(jù)庫的操作。
通過對(duì)反編譯得到的代碼可以得到allowAppStartup以及forbidAppStartup所涉及到的數(shù)據(jù)庫列表標(biāo)識(shí)包括START_UP_FORBIDDEN_APPS_URI(禁用列表標(biāo)識(shí))和START_UP_FORBIDDEN_APPS_URI(啟用列表標(biāo)識(shí)),該數(shù)據(jù)庫列表標(biāo)識(shí)中用于存儲(chǔ)應(yīng)用的應(yīng)用標(biāo)識(shí),以指示該應(yīng)用的開機(jī)自啟動(dòng)功能的狀態(tài)。
其中,allowAppStartup方法中涉及到的對(duì)數(shù)據(jù)庫列表的操作步驟為:
(1)刪除START_UP_FORBIDDEN_APPS_URI中對(duì)應(yīng)pkg的記錄;
(2)增加START_UP_ALLOW_APPS_URI中對(duì)應(yīng)pkg的記錄。
forbidAppStartup方法中涉及到的對(duì)數(shù)據(jù)庫列表的操作步驟為:
(1)刪除START_UP_ALLOW_APPS_URI中對(duì)應(yīng)pkg的記錄;
(2)增加START_UP_FORBIDDEN_APPS_URI中對(duì)應(yīng)pkg的記錄。
需要說明的是,在安卓系統(tǒng)中通過ContentProvider來進(jìn)行數(shù)據(jù)庫的操作可以統(tǒng)一用content命令來調(diào)用。因此,可以根據(jù)content命令、開機(jī)自啟動(dòng)功能對(duì)應(yīng)的數(shù)據(jù)庫列表uri以及應(yīng)用標(biāo)識(shí),便可構(gòu)造應(yīng)用的指定功能的狀態(tài)修改指令。
以華為EMUI3.0系統(tǒng)中啟用qq音樂的開機(jī)自啟動(dòng)功能為例,allowAppStartup對(duì)應(yīng)的數(shù)據(jù)庫列表uri為:
content://com.huawei.android.batteryspriteprovider/startupallowapps;
forbidAppStartup對(duì)應(yīng)的數(shù)據(jù)庫列表uri為:
content://com.huawei.android.batteryspriteprovider/forbiddenapps。
qq音樂的應(yīng)用標(biāo)識(shí)為“com.tencent.qqmusic”,則根據(jù)allowAppStartup方法的操作流程可構(gòu)造出啟用qq音樂的開機(jī)自啟動(dòng)功能的狀態(tài)修改指令為:
(1)content insert--uri content://com.huawei.android.batteryspriteprovider/startupallowapps--bind package_name:s:com.tencent.qqmusic--bind app_type:i:1
(2)content delete--uri content://com.huawei.android.batteryspriteprovider/forbiddenapps--where"package_name='com.tencent.qqmusic'"。
通過構(gòu)造的開機(jī)自啟動(dòng)功能的狀態(tài)修改指令可以得出,類似開機(jī)自啟動(dòng)功能的狀態(tài)修改指令中至少包含第一指令和第二指令,第一指令包含應(yīng)用的應(yīng)用標(biāo)識(shí)、指定功能的啟用列表標(biāo)識(shí)和第一操作標(biāo)識(shí);第二指令包含應(yīng)用的應(yīng)用標(biāo)識(shí)、指定功能的禁用列表標(biāo)識(shí)和第二操作標(biāo)識(shí)。例如,在上述啟用qq音樂的開機(jī)自啟動(dòng)功能的狀態(tài)修改指令中,第一指令中啟用列表標(biāo)識(shí)為“content://com.huawei.android.batteryspriteprovider/startupallowapps”,應(yīng)用標(biāo)識(shí)為“com.tencent.qqmusic”,第一操作標(biāo)識(shí)為“insert”。
需要說明的是,上述指定功能的狀態(tài)修改指令的獲取方式中,僅以華為EMUI3.0系統(tǒng)中開機(jī)自啟動(dòng)功能和桌面懸浮窗功能為例進(jìn)行解釋說明,對(duì)于其他終端系統(tǒng)以及其他功能的修改指令獲取方式同理。而且,通過上述構(gòu)造的指令可以得出,指定功能的狀態(tài)修改指令可以包含一條指令也可以包含一組指令,由實(shí)際終端系統(tǒng)中指定功能的狀態(tài)修改操作決定,本發(fā)明實(shí)施例對(duì)此不作具體限定。
在得到應(yīng)用指定功能在不同終端系統(tǒng)中的狀態(tài)修改指令后,可以將應(yīng)用的指定功能的至少一個(gè)終端系統(tǒng)標(biāo)識(shí)以及對(duì)應(yīng)的狀態(tài)修改指令存儲(chǔ)到預(yù)設(shè)指令列表中,并將該預(yù)設(shè)指令列表攜帶在應(yīng)用的安裝包中,以使在不同的終端系統(tǒng)中均能通過應(yīng)用本地存儲(chǔ)的預(yù)設(shè)指令列表獲取到指定功能的狀態(tài)修改指令。
例如,假如應(yīng)用是qq音樂,終端系統(tǒng)為華為EMUI3.0,指定功能為桌面懸浮窗功能,狀態(tài)修改操作指示的對(duì)指定功能的啟用操作,則可以從預(yù)設(shè)列表中獲取到qq音樂在華為EMUI3.0中啟用桌面懸浮窗功能的目標(biāo)狀態(tài)修改指令為:service call appops 11i32 24i32 10088s16"com.tencent.qqmusic"i32 0。
在另一實(shí)施例中,應(yīng)用也可不必在檢測(cè)對(duì)指定應(yīng)用的狀態(tài)修改操作后,再獲取指定功能的目標(biāo)狀態(tài)修改指令,而是自行獲取指定應(yīng)用的目標(biāo)狀態(tài)修改指令。比如,該指定功能可以為啟用頻率高于預(yù)設(shè)閾值的功能或者為預(yù)先設(shè)定的自動(dòng)啟用的功能,應(yīng)用可自行獲取用于啟用指定功能的目標(biāo)狀態(tài)修改指令,而無需每個(gè)用戶都執(zhí)行一次對(duì)啟用該指定功能的狀態(tài)修改操作。該功能的啟用頻率可由開發(fā)人員進(jìn)行統(tǒng)計(jì)得到,該預(yù)設(shè)閾值可以進(jìn)行預(yù)先設(shè)置或修改,本發(fā)明實(shí)施例對(duì)此不作限定。
204、應(yīng)用客戶端向終端系統(tǒng)發(fā)送目標(biāo)狀態(tài)修改指令。
應(yīng)用客戶端通過第二預(yù)設(shè)接口將目標(biāo)狀態(tài)修改指令發(fā)送至終端系統(tǒng),使得終端系統(tǒng)能夠執(zhí)行該目標(biāo)狀態(tài)修改指令,以實(shí)現(xiàn)指定功能設(shè)置為狀態(tài)修改操作對(duì)應(yīng)的狀態(tài)。其中,第二預(yù)設(shè)接口可由終端系統(tǒng)進(jìn)行預(yù)先設(shè)定或修改,第二預(yù)設(shè)接口與步驟202中的第一預(yù)設(shè)接口可以相同也可以不同,本發(fā)明實(shí)施例對(duì)此不作具體限定。
205、終端系統(tǒng)響應(yīng)于接收到的目標(biāo)狀態(tài)修改指令,將指定功能設(shè)置為狀態(tài)修改操作對(duì)應(yīng)的狀態(tài)。
終端系統(tǒng)在獲取到應(yīng)用的目標(biāo)狀態(tài)修改指令后,可以對(duì)目標(biāo)狀態(tài)修改指令進(jìn)行解析,并將其加載到系統(tǒng)進(jìn)程中以執(zhí)行該目標(biāo)狀態(tài)該指令,進(jìn)而實(shí)現(xiàn)將指定功能設(shè)置為狀態(tài)修改操作對(duì)應(yīng)的狀態(tài)。
根據(jù)目標(biāo)狀態(tài)修改指令的不同類型,終端系統(tǒng)將指定功能設(shè)置為狀態(tài)修改操作對(duì)應(yīng)的狀態(tài)的過程可以分為如下兩種情況:
第一種情況:目標(biāo)狀態(tài)修改指令為service call命令。
該種情況下目標(biāo)狀態(tài)修改指令包含應(yīng)用的應(yīng)用標(biāo)識(shí)、指定功能的功能標(biāo)識(shí)以及目標(biāo)狀態(tài)值。目標(biāo)狀態(tài)修改指令用于指示終端系統(tǒng)將應(yīng)用的指定功能的功能標(biāo)識(shí)對(duì)應(yīng)的狀態(tài)值修改為目標(biāo)狀態(tài)值。
以在EMUI3.0系統(tǒng)中啟用qq音樂的桌面懸浮窗功能為例,則獲取到的目標(biāo)狀態(tài)修改指令為service call appops 11i32 24i32 10088s16"com.tencent.qqmusic"i32 0為例。終端系統(tǒng)通過service call命令調(diào)用appops服務(wù),根據(jù)狀態(tài)修改接口業(yè)務(wù)碼11,調(diào)用setOpsMode狀態(tài)修改接口,進(jìn)而根據(jù)參數(shù)“i32 24i32 10088s16"com.tencent.qqmusic"i32 0”將qq音樂的10088功能(桌面懸浮窗功能)的狀態(tài)值修改為0(啟用狀態(tài))。
第二種情況,目標(biāo)狀態(tài)修改指令為content命令。
該種情況下目標(biāo)狀態(tài)修改指令至少包含第一指令和第二指令,也即是包含一組指令。其中,第一指令包含應(yīng)用的應(yīng)用標(biāo)識(shí)、指定功能的啟用列表標(biāo)識(shí)和第一操作標(biāo)識(shí),第二指令包含應(yīng)用的應(yīng)用標(biāo)識(shí)、指定功能的禁用列表標(biāo)識(shí)和第二操作標(biāo)識(shí)。
其中,當(dāng)狀態(tài)修改操作為啟用操作時(shí),第一操作標(biāo)識(shí)為添加操作標(biāo)識(shí),第二操作標(biāo)識(shí)為刪除操作標(biāo)識(shí)。當(dāng)狀態(tài)修改操作為禁用操作時(shí),第一操作標(biāo)識(shí)為刪除操作標(biāo)識(shí),第二操作標(biāo)識(shí)為添加操作標(biāo)識(shí)。
當(dāng)狀態(tài)修改操作為啟用操作時(shí),終端系統(tǒng)分別執(zhí)行第一指令和第二指令,以啟用該指定功能。具體地,根據(jù)第一指令獲取指定功能的啟用列表,在該啟用列表中添加應(yīng)用的應(yīng)用標(biāo)識(shí);根據(jù)第二指令獲取指定功能的禁用列表,在該禁用列表中刪除應(yīng)用的應(yīng)用標(biāo)識(shí)。
當(dāng)狀態(tài)修改操作為禁用操作時(shí),終端系統(tǒng)分別執(zhí)行第一指令和第二指令,以禁用該指定功能。具體地,根據(jù)第一指令獲取指定功能的啟用列表,在該啟用列表中刪除應(yīng)用的應(yīng)用標(biāo)識(shí);根據(jù)第二指令獲取指定功能的禁用列表,在該禁用列表中添加應(yīng)用的應(yīng)用標(biāo)識(shí)。
以EMUI3.0系統(tǒng)中啟用qq音樂的開機(jī)自啟動(dòng)功能為例,則獲取到的目標(biāo)狀態(tài)修改指令為:
(1)content insert--uri content://com.huawei.android.batteryspriteprovider/startupallowapps--bind package_name:s:com.tencent.qqmusic--bind app_type:i:1
(2)content delete--uri content://com.huawei.android.batteryspriteprovider/forbiddenapps--where"package_name='com.tencent.qqmusic'"
其中,insert和delete為操作標(biāo)識(shí);
content://com.huawei.android.batteryspriteprovider/startupallowapps為指定功能的啟用列表標(biāo)識(shí);
content://com.huawei.android.batteryspriteprovider/forbiddenapps為指定功能的禁用列表標(biāo)識(shí);
com.tencent.qqmusic為應(yīng)用的應(yīng)用標(biāo)識(shí)。
終端系統(tǒng)在獲取到該目標(biāo)狀態(tài)修改指令后,可以根據(jù)操作標(biāo)識(shí)、所需操作的列表標(biāo)識(shí)以及應(yīng)用標(biāo)識(shí),執(zhí)行相應(yīng)的操作,以啟用開機(jī)自啟動(dòng)功能。具體地,在啟用功能列表標(biāo)識(shí)中添加該應(yīng)用標(biāo)識(shí),在禁用功能列表中刪除該應(yīng)用標(biāo)識(shí)。
需要說明的是,在上述第二種情況中,第一指令可以在第二指令之前或之后執(zhí)行,本發(fā)明實(shí)施例第一指令和第二指令執(zhí)行的先后順序不作具體限定。當(dāng)目標(biāo)狀態(tài)修改指令包含一組指令時(shí),應(yīng)用可以通過第二預(yù)設(shè)接口將該一組指令按照?qǐng)?zhí)行順序排列后一起發(fā)送給終端系統(tǒng),也可以按照?qǐng)?zhí)行順序逐一發(fā)送給終端系統(tǒng),比如,在將一條指令發(fā)送給終端系統(tǒng)后,可以在接收到終端系統(tǒng)的指令執(zhí)行成功反饋時(shí),再發(fā)送下一條指令,本發(fā)明實(shí)施例對(duì)此不作限定。終端系統(tǒng)在執(zhí)行目標(biāo)狀態(tài)修改指令時(shí),可以通過開啟一個(gè)線程以執(zhí)行相應(yīng)指令對(duì)應(yīng)的操作,比如,執(zhí)行對(duì)列表的添加或刪除操作。
206、如果應(yīng)用不具有對(duì)終端系統(tǒng)的root權(quán)限,則應(yīng)用客戶端不響應(yīng)狀態(tài)修改操作,并顯示提示消息,該提示消息用于提示應(yīng)用不具有對(duì)終端系統(tǒng)的root權(quán)限。
當(dāng)檢測(cè)到應(yīng)用不具有對(duì)終端系統(tǒng)的root權(quán)限時(shí),確定無法執(zhí)行對(duì)指定應(yīng)用的狀態(tài)修改操作,不響應(yīng)該狀態(tài)修改操作。同時(shí),應(yīng)用可以生成提示消息,并顯示該提示消息,以提示用戶應(yīng)用不具有對(duì)終端系統(tǒng)的root權(quán)限。該提示消息的形式包括但不限于彈窗提示,本發(fā)明實(shí)施例對(duì)此不作限定。該提示消息的內(nèi)容可以為例如“當(dāng)前應(yīng)用不具有root權(quán)限,請(qǐng)先獲取root權(quán)限”的內(nèi)容。
進(jìn)一步地,在檢測(cè)到應(yīng)用不具有對(duì)終端系統(tǒng)的root權(quán)限時(shí),為了更便捷地使應(yīng)用獲取到對(duì)終端系統(tǒng)的root權(quán)限,應(yīng)用還可在顯示提示信息的基礎(chǔ)上,向用戶提供獲取root權(quán)限的工具下載鏈接。比如,該工具下載鏈接可以攜帶在提示消息中,該提示消息的內(nèi)容可以為“當(dāng)前應(yīng)用不具有root權(quán)限,點(diǎn)擊鏈接***下載獲取root權(quán)限的工具”,當(dāng)檢測(cè)到用戶對(duì)工具鏈接的點(diǎn)擊操作時(shí),下載該獲取root權(quán)限的工具。當(dāng)然,該工具下載鏈接可以不顯示在提示信息中,而是向用戶顯示是否下載的按鈕,此時(shí),提示信息的內(nèi)容可以為“當(dāng)前應(yīng)用不具有root權(quán)限,是否下載工具以獲取root權(quán)限”,當(dāng)檢測(cè)到用戶的下載確認(rèn)操作時(shí),讀取存儲(chǔ)的工具下載鏈接以下載獲取root權(quán)限的工具。
本發(fā)明實(shí)施例提供的方法,針對(duì)應(yīng)用的功能,預(yù)先獲取到了用于存儲(chǔ)該功能的至少一個(gè)終端系統(tǒng)標(biāo)識(shí)以及對(duì)應(yīng)的狀態(tài)修改指令的預(yù)設(shè)指令列表,因此,可以在需要進(jìn)行功能狀態(tài)修改時(shí),通過觸發(fā)狀態(tài)修改操作,使得能夠從預(yù)設(shè)指令列表中獲取與當(dāng)前終端系統(tǒng)匹配的狀態(tài)修改指令,并由終端系統(tǒng)執(zhí)行該狀態(tài)修改指令,達(dá)到修改功能狀態(tài)的目的,簡化了操作過程,縮短了操作路徑。
同時(shí),上述方法使得在不同的終端系統(tǒng)中均能通過統(tǒng)一的方式進(jìn)行功能狀態(tài)修改,大大提高了功能狀態(tài)修改方式的統(tǒng)一性,大大降低了功能狀態(tài)修改的學(xué)習(xí)成本。
圖3是本發(fā)明實(shí)施例提供的一種應(yīng)用的功能狀態(tài)修改裝置的框圖。參照?qǐng)D3,該裝置包括第一獲取模塊301、第二獲取模塊302和發(fā)送模塊303。
其中,第一獲取模塊301與第二獲取模塊302連接,用于當(dāng)檢測(cè)到對(duì)應(yīng)用的指定功能的狀態(tài)修改操作時(shí),獲取終端系統(tǒng)標(biāo)識(shí);第二獲取模塊302與發(fā)送模塊303連接,用于根據(jù)終端系統(tǒng)標(biāo)識(shí),從預(yù)設(shè)指令列表中獲取目標(biāo)狀態(tài)修改指令,目標(biāo)狀態(tài)修改指令用于指示終端系統(tǒng)將指定功能設(shè)置為狀態(tài)修改操作對(duì)應(yīng)的狀態(tài),預(yù)設(shè)指令列表至少用于存儲(chǔ)至少一個(gè)終端系統(tǒng)標(biāo)識(shí)和狀態(tài)修改指令的對(duì)應(yīng)關(guān)系;發(fā)送模塊303,用于向終端系統(tǒng)發(fā)送目標(biāo)狀態(tài)修改指令,使得終端系統(tǒng)響應(yīng)于目標(biāo)狀態(tài)修改指令,將指定功能設(shè)置為狀態(tài)修改操作對(duì)應(yīng)的狀態(tài)。
在一種可能的實(shí)現(xiàn)方式中,目標(biāo)狀態(tài)修改指令包含應(yīng)用的應(yīng)用標(biāo)識(shí)、指定功能的功能標(biāo)識(shí)以及目標(biāo)狀態(tài)值,目標(biāo)狀態(tài)修改指令用于指示終端系統(tǒng)將應(yīng)用的指定功能的功能標(biāo)識(shí)對(duì)應(yīng)的狀態(tài)值修改為目標(biāo)狀態(tài)值。
在一種可能的實(shí)現(xiàn)方式中,目標(biāo)狀態(tài)修改指令包含第一指令和第二指令,第一指令包含應(yīng)用的應(yīng)用標(biāo)識(shí)、指定功能的啟用列表標(biāo)識(shí)和第一操作標(biāo)識(shí),第二指令包含應(yīng)用的應(yīng)用標(biāo)識(shí)、指定功能的禁用列表標(biāo)識(shí)和第二操作標(biāo)識(shí),
當(dāng)狀態(tài)修改操作為啟用操作時(shí),第一操作標(biāo)識(shí)為添加操作標(biāo)識(shí),第二操作標(biāo)識(shí)為刪除操作標(biāo)識(shí),第一指令用于指示終端系統(tǒng)在指定功能的啟用列表中添加應(yīng)用標(biāo)識(shí),第二指令用于指示終端系統(tǒng)在指定功能的禁用列表中刪除應(yīng)用標(biāo)識(shí);或,
當(dāng)狀態(tài)修改操作為禁用操作時(shí),第一操作標(biāo)識(shí)為刪除操作標(biāo)識(shí),第二操作標(biāo)識(shí)為添加操作標(biāo)識(shí),第一指令用于指示終端系統(tǒng)在指定功能的啟用列表中刪除應(yīng)用標(biāo)識(shí),第二指令用于指示終端系統(tǒng)在指定功能的禁用列表中添加應(yīng)用標(biāo)識(shí)。
在一種可能的實(shí)現(xiàn)方式中,預(yù)設(shè)指令列表攜帶在應(yīng)用的安裝包中。
在一種可能的實(shí)現(xiàn)方式中,該裝置還包括:
檢測(cè)模塊,用于判斷應(yīng)用是否具有對(duì)終端系統(tǒng)的root權(quán)限;
執(zhí)行模塊,用于如果具有,則執(zhí)行獲取終端系統(tǒng)標(biāo)識(shí)的步驟;
執(zhí)行模塊還用于如果不具有,則不響應(yīng)狀態(tài)修改操作,并顯示提示消息,提示消息用于提示應(yīng)用不具有對(duì)終端系統(tǒng)的root權(quán)限。
本公開實(shí)施例提供的裝置,針對(duì)應(yīng)用的功能,預(yù)先獲取到了用于存儲(chǔ)該功能的至少一個(gè)終端系統(tǒng)標(biāo)識(shí)以及對(duì)應(yīng)的狀態(tài)修改指令的預(yù)設(shè)指令列表,因此,可以在需要進(jìn)行功能狀態(tài)修改時(shí),通過觸發(fā)狀態(tài)修改操作,使得能夠從預(yù)設(shè)指令列表中獲取與當(dāng)前終端系統(tǒng)匹配的狀態(tài)修改指令,并由終端系統(tǒng)執(zhí)行該狀態(tài)修改指令,達(dá)到修改功能狀態(tài)的目的,簡化了操作過程,縮短了操作路徑。
需要說明的是:上述實(shí)施例提供的應(yīng)用的功能狀態(tài)修改裝置在修改應(yīng)用的功能狀態(tài)時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設(shè)備的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的應(yīng)用的功能狀態(tài)修改裝置與應(yīng)用的功能狀態(tài)修改方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過程詳見方法實(shí)施例,這里不再贅述。
本發(fā)明實(shí)施例還提供了一種終端,包括:終端系統(tǒng)和上述任一實(shí)施例所示的應(yīng)用的功能狀態(tài)修改裝置。
圖4是本發(fā)明實(shí)施例提供的一種終端的結(jié)構(gòu)示意圖,該終端可以用于執(zhí)行上述各個(gè)實(shí)施例中提供的應(yīng)用的功能狀態(tài)修改方法。參見圖4,該終端400包括:
終端400可以包括RF(Radio Frequency,射頻)電路110、包括有一個(gè)或一個(gè)以上計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的存儲(chǔ)器120、輸入單元130、顯示單元140、傳感器150、音頻電路160、WiFi(Wireless Fidelity,無線保真)模塊170、包括有一個(gè)或者一個(gè)以上處理核心的處理器180、以及電源190等部件。本領(lǐng)域技術(shù)人員可以理解,圖4中示出的終端結(jié)構(gòu)并不構(gòu)成對(duì)終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:
RF電路110可用于收發(fā)信息或通話過程中,信號(hào)的接收和發(fā)送,特別地,將基站的下行信息接收后,交由一個(gè)或者一個(gè)以上處理器180處理;另外,將涉及上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路110包括但不限于天線、至少一個(gè)放大器、調(diào)諧器、一個(gè)或多個(gè)振蕩器、用戶身份模塊(SIM)卡、收發(fā)信機(jī)、耦合器、LNA(Low Noise Amplifier,低噪聲放大器)、雙工器等。此外,RF電路110還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。所述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于GSM(Global System of Mobile communication,全球移動(dòng)通訊系統(tǒng))、GPRS(General Packet Radio Service,通用分組無線服務(wù))、CDMA(Code Division Multiple Access,碼分多址)、WCDMA(Wideband Code Division Multiple Access,寬帶碼分多址)、LTE(Long Term Evolution,長期演進(jìn))、電子郵件、SMS(Short Messaging Service,短消息服務(wù))等。
存儲(chǔ)器120可用于存儲(chǔ)軟件程序以及模塊,處理器180通過運(yùn)行存儲(chǔ)在存儲(chǔ)器120的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。存儲(chǔ)器120可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)終端400的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲(chǔ)器120可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。相應(yīng)地,存儲(chǔ)器120還可以包括存儲(chǔ)器控制器,以提供處理器180和輸入單元130對(duì)存儲(chǔ)器120的訪問。
輸入單元130可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與用戶設(shè)置以及功能控制有關(guān)的鍵盤、鼠標(biāo)、操作桿、光學(xué)或者軌跡球信號(hào)輸入。具體地,輸入單元130可包括觸敏表面131以及其他輸入設(shè)備132。觸敏表面131,也稱為觸摸顯示屏或者觸控板,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸敏表面131上或在觸敏表面131附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動(dòng)相應(yīng)的連接裝置??蛇x的,觸敏表面131可包括觸摸檢測(cè)裝置和觸摸控制器兩個(gè)部分。其中,觸摸檢測(cè)裝置檢測(cè)用戶的觸摸方位,并檢測(cè)觸摸操作帶來的信號(hào),將信號(hào)傳送給觸摸控制器;觸摸控制器從觸摸檢測(cè)裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給處理器180,并能接收處理器180發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實(shí)現(xiàn)觸敏表面131。除了觸敏表面131,輸入單元130還可以包括其他輸入設(shè)備132。具體地,其他輸入設(shè)備132可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種。
顯示單元140可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端400的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標(biāo)、視頻和其任意組合來構(gòu)成。顯示單元140可包括顯示面板141,可選的,可以采用LCD(Liquid Crystal Display,液晶顯示器)、OLED(Organic Light-Emitting Diode,有機(jī)發(fā)光二極管)等形式來配置顯示面板141。進(jìn)一步的,觸敏表面131可覆蓋顯示面板141,當(dāng)觸敏表面131檢測(cè)到在其上或附近的觸摸操作后,傳送給處理器180以確定觸摸事件的類型,隨后處理器180根據(jù)觸摸事件的類型在顯示面板141上提供相應(yīng)的視覺輸出。雖然在圖4中,觸敏表面131與顯示面板141是作為兩個(gè)獨(dú)立的部件來實(shí)現(xiàn)輸入和輸入功能,但是在某些實(shí)施例中,可以將觸敏表面131與顯示面板141集成而實(shí)現(xiàn)輸入和輸出功能。
終端400還可包括至少一種傳感器150,比如光傳感器、運(yùn)動(dòng)傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板141的亮度,接近傳感器可在終端400移動(dòng)到耳邊時(shí),關(guān)閉顯示面板141和/或背光。作為運(yùn)動(dòng)傳感器的一種,重力加速度傳感器可檢測(cè)各個(gè)方向上(一般為三軸)加速度的大小,靜止時(shí)可檢測(cè)出重力的大小及方向,可用于識(shí)別手機(jī)姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計(jì)姿態(tài)校準(zhǔn))、振動(dòng)識(shí)別相關(guān)功能(比如計(jì)步器、敲擊)等;至于終端400還可配置的陀螺儀、氣壓計(jì)、濕度計(jì)、溫度計(jì)、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路160、揚(yáng)聲器161,傳聲器162可提供用戶與終端400之間的音頻接口。音頻電路160可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號(hào),傳輸?shù)綋P(yáng)聲器161,由揚(yáng)聲器161轉(zhuǎn)換為聲音信號(hào)輸出;另一方面,傳聲器162將收集的聲音信號(hào)轉(zhuǎn)換為電信號(hào),由音頻電路160接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器180處理后,經(jīng)RF電路110以發(fā)送給比如另一終端,或者將音頻數(shù)據(jù)輸出至存儲(chǔ)器120以便進(jìn)一步處理。音頻電路160還可能包括耳塞插孔,以提供外設(shè)耳機(jī)與終端400的通信。
WiFi屬于短距離無線傳輸技術(shù),終端400通過WiFi模塊170可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖4示出了WiFi模塊170,但是可以理解的是,其并不屬于終端400的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
處理器180是終端400的控制中心,利用各種接口和線路連接整個(gè)手機(jī)的各個(gè)部分,通過運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器120內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲(chǔ)在存儲(chǔ)器120內(nèi)的數(shù)據(jù),執(zhí)行終端400的各種功能和處理數(shù)據(jù),從而對(duì)手機(jī)進(jìn)行整體監(jiān)控。可選的,處理器180可包括一個(gè)或多個(gè)處理核心;優(yōu)選的,處理器180可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信。可以理解的是,上述調(diào)制解調(diào)處理器也可以不集成到處理器180中。
終端400還包括給各個(gè)部件供電的電源190(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器180邏輯相連,從而通過電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗管理等功能。電源190還可以包括一個(gè)或一個(gè)以上的直流或交流電源、再充電系統(tǒng)、電源故障檢測(cè)電路、電源轉(zhuǎn)換器或者逆變器、電源狀態(tài)指示器等任意組件。
盡管未示出,終端400還可以包括攝像頭、藍(lán)牙模塊等,在此不再贅述。具體在本實(shí)施例中,終端的顯示單元是觸摸屏顯示器,終端還包括有存儲(chǔ)器,以及一個(gè)或者一個(gè)以上的程序,其中一個(gè)或者一個(gè)以上程序存儲(chǔ)于存儲(chǔ)器中,且經(jīng)配置以由一個(gè)或者一個(gè)以上處理器執(zhí)行。所述一個(gè)或者一個(gè)以上程序包含可執(zhí)行指令,終端400被配置為執(zhí)行指令,以執(zhí)行上述應(yīng)用的功能狀態(tài)修改方法實(shí)施例中終端所執(zhí)行的方法。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。