本發(fā)明涉及電視技術(shù)領(lǐng)域,尤其涉及智能電視信源切換方法及裝置。
背景技術(shù):
隨著智能設(shè)備技術(shù)的發(fā)展,運(yùn)行在智能電視系統(tǒng)中的應(yīng)用也越來越多樣化。由于不同應(yīng)用的需要,智能電視設(shè)置有很多信源,比如HDMI(高清晰度多媒體信號(hào))、VGA(視頻圖形陣列)、DVI(數(shù)字視頻接口)、ATV(射頻模擬電視信號(hào))、DTV(數(shù)字電視信號(hào))、XBOX游戲機(jī)等等,這些信源通過采用不同的輸入通道,滿足了不同應(yīng)用的信源使用需求。
然而,智能電視的多信源也使得需要切換信源的場(chǎng)景增多,由于應(yīng)用切換信源的操作是在智能電視搭載的系統(tǒng)的生命周期內(nèi)執(zhí)行,當(dāng)多個(gè)應(yīng)用之間相互切換時(shí),會(huì)導(dǎo)致系統(tǒng)的生命周期錯(cuò)亂,由此可能會(huì)導(dǎo)致切換信源的時(shí)序錯(cuò)亂,最終切換到到信源并非是用戶真正想要切換到的信源。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提出一種智能電視信源切換方法及裝置,旨在解決多個(gè)應(yīng)用相互切換信源時(shí)導(dǎo)致的信源切換錯(cuò)亂的技術(shù)問題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供一種智能電視信源切換方法,所述方法包括如下步驟:
接收應(yīng)用的權(quán)限申請(qǐng)請(qǐng)求,根據(jù)所述權(quán)限申請(qǐng)請(qǐng)求從預(yù)設(shè)的權(quán)限管理資源池中為所述應(yīng)用分配一個(gè)權(quán)限ID;
接收所述應(yīng)用的信源切換請(qǐng)求,所述信源切換請(qǐng)求攜帶分配的所述權(quán)限ID;
判斷所述信源切換請(qǐng)求中的所述權(quán)限ID當(dāng)前是否具備信源切換權(quán)限;
若是,則執(zhí)行所述應(yīng)用的信源切換,并限制所述權(quán)限管理資源池中除所述權(quán)限ID之外的所有ID的信源切換權(quán)限。
可選地,所述接收應(yīng)用的權(quán)限申請(qǐng)請(qǐng)求,根據(jù)所述權(quán)限申請(qǐng)請(qǐng)求從預(yù)設(shè)的權(quán)限管理資源池中為所述應(yīng)用分配一個(gè)權(quán)限ID的步驟之前,還包括:
設(shè)置權(quán)限管理資源池,所述權(quán)限管理資源池用于存儲(chǔ)若干ID和每個(gè)ID當(dāng)前所處的狀態(tài)。
可選地,所述判斷所述信源切換請(qǐng)求中的所述權(quán)限ID當(dāng)前是否具備信源切換權(quán)限的步驟包括:
判斷當(dāng)前所述權(quán)限資源存儲(chǔ)池中是否存在所述權(quán)限ID;
若是,則判斷所述權(quán)限ID當(dāng)前是否處于預(yù)設(shè)狀態(tài);
若是,則判定所述權(quán)限ID當(dāng)前具備信源切換權(quán)限。
可選地,所述執(zhí)行所述應(yīng)用的信源切換,并限制所述權(quán)限管理資源池中除所述權(quán)限ID之外的所有ID的信源切換權(quán)限的步驟之前,還包括:
判斷所述權(quán)限ID是否與預(yù)設(shè)的全局變量中的ID相同,所述全局變量用于存儲(chǔ)當(dāng)前具備信源切換權(quán)限的ID;
若是,則執(zhí)行步驟:執(zhí)行所述應(yīng)用的信源切換,并限制所述權(quán)限管理資源池中除所述權(quán)限ID之外的所有ID的信源切換權(quán)限。
可選地,所述信源切換請(qǐng)求包括搶占式信源切換請(qǐng)求和非搶占式信源切換請(qǐng)求。
此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種智能電視信源切換裝置,所述裝置包括:
分配模塊,用于接收應(yīng)用的權(quán)限申請(qǐng)請(qǐng)求,根據(jù)所述權(quán)限申請(qǐng)請(qǐng)求從預(yù)設(shè)的權(quán)限管理資源池中為所述應(yīng)用分配一個(gè)權(quán)限ID;
接收模塊,用于接收所述應(yīng)用的信源切換請(qǐng)求,所述信源切換請(qǐng)求攜帶分配的所述權(quán)限ID;
第一判斷模塊,用于判斷所述信源切換請(qǐng)求中的所述權(quán)限ID當(dāng)前是否具備信源切換權(quán)限;
執(zhí)行模塊,用于若所述信源切換請(qǐng)求中的所述權(quán)限ID當(dāng)前具備信源切換權(quán)限,則執(zhí)行所述應(yīng)用的信源切換,并限制所述權(quán)限管理資源池中除所述權(quán)限ID之外的所有ID的信源切換權(quán)限。
可選地,所述裝置還包括:
設(shè)置模塊,用于設(shè)置權(quán)限管理資源池,所述權(quán)限管理資源池用于存儲(chǔ)若干ID和每個(gè)ID當(dāng)前所處的狀態(tài)。
可選地,所述第一判斷模塊還用于:
判斷當(dāng)前所述權(quán)限資源存儲(chǔ)池中是否存在所述權(quán)限ID;
若是,則判斷所述權(quán)限ID當(dāng)前是否處于預(yù)設(shè)狀態(tài);
若是,則判定所述權(quán)限ID當(dāng)前具備信源切換權(quán)限。
可選地,所述裝置還包括:
第二判斷模塊,用于判斷所述權(quán)限ID是否與預(yù)設(shè)的全局變量中的ID相同,所述全局變量用于存儲(chǔ)當(dāng)前具備信源切換權(quán)限的ID;
所述執(zhí)行模塊還用于在所述權(quán)限ID與預(yù)設(shè)的全局變量中的ID相同時(shí),執(zhí)行所述應(yīng)用的信源切換,并限制所述權(quán)限管理資源池中除所述權(quán)限ID之外的所有ID的信源切換權(quán)限。
可選地,所述信源切換請(qǐng)求包括搶占式信源切換請(qǐng)求和非搶占式信源切換請(qǐng)求。
本發(fā)明接收應(yīng)用的權(quán)限申請(qǐng)請(qǐng)求,根據(jù)所述權(quán)限申請(qǐng)請(qǐng)求從預(yù)設(shè)的權(quán)限管理資源池中為所述應(yīng)用分配一個(gè)權(quán)限ID;接收所述應(yīng)用的信源切換請(qǐng)求,所述信源切換請(qǐng)求攜帶分配的所述權(quán)限ID;判斷所述信源切換請(qǐng)求中的所述權(quán)限ID當(dāng)前是否具備信源切換權(quán)限;若是,則執(zhí)行所述應(yīng)用的信源切換,并限制所述權(quán)限管理資源池中除所述權(quán)限ID之外的所有ID的信源切換權(quán)限。本發(fā)明通過為信源切換提供一種權(quán)限控制機(jī)制,當(dāng)某一應(yīng)用請(qǐng)求切換信源時(shí),必須通過權(quán)限申請(qǐng)才可以完成,當(dāng)某一應(yīng)用獲取執(zhí)行權(quán)限后,其他應(yīng)用就失去了執(zhí)行權(quán)限,從而保證了始終只有一個(gè)應(yīng)用有執(zhí)行權(quán)限,從而解決了多個(gè)應(yīng)用相互切換信源時(shí)導(dǎo)致的信源切換錯(cuò)亂的技術(shù)問題。
附圖說明
圖1為本發(fā)明智能電視信源切換方法第一實(shí)施例的流程示意圖;
圖2為本發(fā)明智能電視信源切換方法第二實(shí)施例的流程示意圖;
圖3為本發(fā)明權(quán)限資源管理池的設(shè)計(jì)場(chǎng)景示意圖;
圖4為本發(fā)明對(duì)應(yīng)用進(jìn)行權(quán)限控制的設(shè)計(jì)場(chǎng)景示意圖;
圖5為本發(fā)明智能電視信源切換方法第三實(shí)施例的流程示意圖;
圖6為本發(fā)明判斷應(yīng)用是否具備執(zhí)行信源切換權(quán)限的流程示意圖;
圖7為本發(fā)明判斷應(yīng)用是否具備執(zhí)行信源切換權(quán)限的另一流程示意圖;
圖8為本發(fā)明應(yīng)用調(diào)用不同切信源接口進(jìn)行權(quán)限申請(qǐng)的流程示意圖;
圖9為本發(fā)明應(yīng)用A和應(yīng)用B信源切換的應(yīng)用場(chǎng)景示意圖;
圖10為本發(fā)明智能電視信源切換裝置第一實(shí)施例的功能模塊示意圖;
圖11為本發(fā)明智能電視信源切換裝置第二實(shí)施例的功能模塊示意圖;
圖12為本發(fā)明智能電視信源切換裝置第三實(shí)施例的功能模塊示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明提供一種智能電視信源切換方法。
參照?qǐng)D1,圖1為本發(fā)明智能電視信源切換方法第一實(shí)施例的流程示意圖。所述方法包括如下步驟:
步驟S10,接收應(yīng)用的權(quán)限申請(qǐng)請(qǐng)求,根據(jù)所述權(quán)限申請(qǐng)請(qǐng)求從預(yù)設(shè)的權(quán)限管理資源池中為所述應(yīng)用分配一個(gè)權(quán)限ID;
在智能電視系統(tǒng)安裝了多個(gè)應(yīng)用的情形下,智能電視會(huì)根據(jù)不同應(yīng)用的需要來對(duì)當(dāng)前播放信源進(jìn)行切換,比如智能電視當(dāng)前處于數(shù)字電視信源播放模式,用戶通過某個(gè)網(wǎng)絡(luò)視頻應(yīng)用點(diǎn)播網(wǎng)絡(luò)視頻,則智能電視需要切換至HDMI多媒體信源播放模式以播放網(wǎng)絡(luò)視頻。具體地,智能電視可以接收用戶的遙控指令來切換信源,也可以預(yù)先設(shè)置信源切換規(guī)則,比如在預(yù)設(shè)應(yīng)用啟動(dòng)后自動(dòng)切換至該應(yīng)用對(duì)應(yīng)的信源,具體實(shí)施中可進(jìn)行靈活設(shè)置。
與現(xiàn)有技術(shù)不同之處在于,本發(fā)明執(zhí)行信源切換的應(yīng)用必須具備向系統(tǒng)申請(qǐng)的權(quán)限,并且只有當(dāng)申請(qǐng)的權(quán)限符合預(yù)設(shè)條件時(shí),該應(yīng)用才能執(zhí)行信源切換。具體地,應(yīng)用可以在某一時(shí)刻基于用戶觸發(fā)的權(quán)限申請(qǐng)指令向系統(tǒng)進(jìn)行權(quán)限申請(qǐng),也可以在啟動(dòng)后自動(dòng)向系統(tǒng)進(jìn)行權(quán)限申請(qǐng),也可以在應(yīng)用程序運(yùn)行的某一時(shí)刻自動(dòng)向系統(tǒng)進(jìn)行權(quán)限申請(qǐng),總之,本發(fā)明對(duì)應(yīng)用進(jìn)行權(quán)限申請(qǐng)的具體場(chǎng)景和時(shí)刻不作限定。
在應(yīng)用申請(qǐng)權(quán)限時(shí),智能電視接收該應(yīng)用的權(quán)限申請(qǐng)請(qǐng)求,并從預(yù)設(shè)的權(quán)限管理資源池中為該應(yīng)用分配一個(gè)權(quán)限ID(此ID是唯一存在的),其中,權(quán)限資源管理池中存儲(chǔ)了若干ID,且每個(gè)ID都有其對(duì)應(yīng)的狀態(tài)。需要說明的是,智能電視分配ID時(shí)可以是隨機(jī)分配,也可以是順序分配,且為保證ID與應(yīng)用之間的一一對(duì)應(yīng)關(guān)系,一個(gè)ID只能分配給一個(gè)應(yīng)用。
步驟S20,接收所述應(yīng)用的信源切換請(qǐng)求,所述信源切換請(qǐng)求攜帶分配的所述權(quán)限ID;
在應(yīng)用獲取到系統(tǒng)分配的權(quán)限ID后,智能電視接收某一時(shí)刻該應(yīng)用發(fā)起信源切換請(qǐng)求,該信源切換請(qǐng)求攜帶之前分配給應(yīng)用的權(quán)限ID,此時(shí)智能電視可根據(jù)該權(quán)限ID判斷信源切換請(qǐng)求是由哪一個(gè)應(yīng)用發(fā)起的。
步驟S30,判斷所述信源切換請(qǐng)求中的所述權(quán)限ID當(dāng)前是否具備信源切換權(quán)限;
具體地,智能電視可查找權(quán)限資源存儲(chǔ)池,進(jìn)而獲取權(quán)限資源存儲(chǔ)池中該權(quán)限ID當(dāng)前的狀態(tài),通過該權(quán)限ID當(dāng)前的狀態(tài)來判斷該權(quán)限ID當(dāng)前是否具備信源切換權(quán)限。比如,對(duì)于一個(gè)ID其狀態(tài)可分為為Request(請(qǐng)求)、Active(活動(dòng))、Release(釋放)三種,若該權(quán)限ID當(dāng)前為Release狀態(tài),則可判定其不具備信源切換權(quán)限。
步驟S40,若所述信源切換請(qǐng)求中的所述權(quán)限ID當(dāng)前具備信源切換權(quán)限,則執(zhí)行所述應(yīng)用的信源切換,并限制所述權(quán)限管理資源池中除所述權(quán)限ID之外的所有ID的信源切換權(quán)限。
若所述權(quán)限ID當(dāng)前具備信源切換權(quán)限,則應(yīng)用執(zhí)行信源切換,同時(shí)限制權(quán)限管理資源池中其他ID的信源切換權(quán)限。比如,當(dāng)某一ID有權(quán)限切換信源時(shí),智能電視會(huì)將權(quán)限管理資源池中其他ID的權(quán)限都取消,且其他ID對(duì)應(yīng)的狀態(tài)也會(huì)變?yōu)镽elease,從而保證了當(dāng)前只有唯一一個(gè)ID具有執(zhí)行權(quán)限。
若所述權(quán)限ID當(dāng)前不具備信源切換權(quán)限,則智能電視將不會(huì)執(zhí)行信源切換,此時(shí)智能電視可以向應(yīng)用返回?zé)o權(quán)限信息。
在本實(shí)施例中,智能電視接收應(yīng)用的權(quán)限申請(qǐng)請(qǐng)求,根據(jù)所述權(quán)限申請(qǐng)請(qǐng)求從預(yù)設(shè)的權(quán)限管理資源池中為所述應(yīng)用分配一個(gè)權(quán)限ID;接收所述應(yīng)用的信源切換請(qǐng)求,所述信源切換請(qǐng)求攜帶分配的所述權(quán)限ID;判斷所述信源切換請(qǐng)求中的所述權(quán)限ID當(dāng)前是否具備信源切換權(quán)限;若是,則執(zhí)行所述應(yīng)用的信源切換,并限制所述權(quán)限管理資源池中除所述權(quán)限ID之外的所有ID的信源切換權(quán)限。本實(shí)施例通過為信源切換提供一種權(quán)限控制機(jī)制,當(dāng)某一應(yīng)用請(qǐng)求切換信源時(shí),必須通過權(quán)限申請(qǐng)才可以完成,當(dāng)某一應(yīng)用獲取執(zhí)行權(quán)限后,其他應(yīng)用就失去了執(zhí)行權(quán)限,從而保證了始終只有一個(gè)應(yīng)用有執(zhí)行權(quán)限,從而解決了多個(gè)應(yīng)用相互切換信源時(shí)導(dǎo)致的信源切換錯(cuò)亂的技術(shù)問題。
進(jìn)一步地,參照?qǐng)D2,圖2為本發(fā)明智能電視信源切換方法第二實(shí)施例的流程示意圖?;谏鲜鰣D1所示的實(shí)施例,所述步驟S10之前,還可以包括:
步驟S50,設(shè)置權(quán)限管理資源池,所述權(quán)限管理資源池用于存儲(chǔ)若干ID和每個(gè)ID當(dāng)前所處的狀態(tài)。
為滿足多應(yīng)用的權(quán)限控制需求,智能電視可以預(yù)先設(shè)置一個(gè)權(quán)限管理資源池,用來存放所有權(quán)限申請(qǐng)控制信息。參照?qǐng)D3,圖3為本發(fā)明權(quán)限資源管理池的設(shè)計(jì)場(chǎng)景示意圖,權(quán)限資源管理池id_pool中存儲(chǔ)了若干ID和每個(gè)ID當(dāng)前所處的狀態(tài),如圖中id_1/status_1,id_2/status_2,…,id_n/status_n,…。同時(shí)參照?qǐng)D4,圖4為本發(fā)明對(duì)應(yīng)用進(jìn)行權(quán)限控制的設(shè)計(jì)場(chǎng)景示意圖。Control_Client(權(quán)限控制)包含id/status兩個(gè)變量,分別用來記錄id以及id對(duì)應(yīng)的狀態(tài),其中id為整形變量(int(1,2,…,n)),狀態(tài)status又分為Request/Active/Release三種。
在設(shè)置好權(quán)限管理資源池后,可將權(quán)限管理資源池中的變量進(jìn)行初始化處理。具體地,可首先將各id初始化為非法值(如-1),status狀態(tài)初始化為EN_CONTROL_CLIENT_RELEASE。當(dāng)有應(yīng)用調(diào)用request時(shí),系統(tǒng)會(huì)從id_pool中分配一個(gè)id給應(yīng)用,同時(shí)修改此id的狀態(tài)status為EN_CONTROL_CLIENT_REQUEST。
進(jìn)一步地,所述步驟S30可以包括:
步驟S31,判斷當(dāng)前所述權(quán)限資源存儲(chǔ)池中是否存在所述權(quán)限ID;
步驟S32,若當(dāng)前所述權(quán)限資源存儲(chǔ)池中存在所述權(quán)限ID,則判斷所述權(quán)限ID當(dāng)前是否處于預(yù)設(shè)狀態(tài);
步驟S33,若所述權(quán)限ID當(dāng)前處于預(yù)設(shè)狀態(tài),則判定所述權(quán)限ID當(dāng)前具備信源切換權(quán)限。
由于在權(quán)限資源存儲(chǔ)池在分配給應(yīng)用一個(gè)權(quán)限ID后,該權(quán)限資源存儲(chǔ)池中的變量可能由于用戶的其他操作發(fā)生更改,比如增加或刪除id變量或者id變量的狀態(tài)發(fā)生改變,因此,智能電視需要首先判斷當(dāng)前權(quán)限資源存儲(chǔ)池中是否存在應(yīng)用的權(quán)限ID,若存在,則再判斷所述權(quán)限ID當(dāng)前是否處于預(yù)設(shè)狀態(tài),比如預(yù)設(shè)狀態(tài)可以為EN_CONTROL_CLIENT_REQUEST或EN_CONTROL_CLIENT_ACTIVE,若所述權(quán)限ID當(dāng)前的狀態(tài)為這兩種狀態(tài)中的其中一種,則判定所述權(quán)限ID當(dāng)前具備信源切換權(quán)限;反之,若權(quán)限資源存儲(chǔ)池當(dāng)前不存在所述權(quán)限ID或所述權(quán)限ID當(dāng)前的狀態(tài)為EN_CONTROL_CLIENT_RELEASE,則判定所述權(quán)限ID當(dāng)前不具備信源切換權(quán)限。之后,智能電視將權(quán)限資源存儲(chǔ)池中其他id及其狀態(tài)更新為初始值,以保證當(dāng)前只有唯一一個(gè)id具備信源切換權(quán)限,并執(zhí)行對(duì)應(yīng)應(yīng)用的信源切換。
本實(shí)施例中,通過設(shè)置權(quán)限資源存儲(chǔ)池來記錄各id及其狀態(tài),能夠滿足多應(yīng)用的權(quán)限控制需求,同時(shí)通過判斷信源切換請(qǐng)求中的權(quán)限ID當(dāng)前是否具備信源切換權(quán)限,可以對(duì)應(yīng)用的權(quán)限ID進(jìn)行進(jìn)一步確認(rèn),保證只有在權(quán)限ID當(dāng)前具備信源切換權(quán)限的條件下再執(zhí)行信源切換,增強(qiáng)了信源切換的準(zhǔn)確性。
進(jìn)一步地,參照?qǐng)D5,圖5為本發(fā)明智能電視信源切換方法第三實(shí)施例的流程示意圖?;谏鲜龅膶?shí)施例,所述步驟S40之前,還可以包括:
步驟S60,判斷所述權(quán)限ID是否與預(yù)設(shè)的全局變量中的ID相同,所述全局變量用于存儲(chǔ)當(dāng)前具備信源切換權(quán)限的ID;
若所述權(quán)限ID與預(yù)設(shè)的全局變量中的ID相同,則執(zhí)行步驟S40:執(zhí)行所述應(yīng)用的信源切換,并限制所述權(quán)限管理資源池中除所述權(quán)限ID之外的所有ID的信源切換權(quán)限。
在本實(shí)施例中,智能電視除了設(shè)置權(quán)限控制變量id和status外,還設(shè)置了一個(gè)全局變量,記為Active_id(初始化為-1),用于存儲(chǔ)當(dāng)前具備信源切換權(quán)限的ID。
參照?qǐng)D6,圖6為本發(fā)明判斷應(yīng)用是否具備執(zhí)行信源切換權(quán)限的流程示意圖。在一實(shí)施例中,在初始狀態(tài)下,權(quán)限資源資源池中id_A/id_B…/id_X=-1,某一時(shí)刻應(yīng)用A調(diào)用request時(shí),系統(tǒng)會(huì)從id_pool中分配一個(gè)整形id_A給應(yīng)用,同時(shí)修改id_A的status為EN_CONTROL_CLIENT_REQUEST,之后,當(dāng)應(yīng)用A調(diào)用切信源接口(setinputsource())并發(fā)出信源切換請(qǐng)求時(shí),系統(tǒng)會(huì)根據(jù)id_A在id_pool中查找此id是否存在,并且其狀態(tài)status是否為EN_CONTROL_CLIENT_REQUEST或EN_CONTROL_CLIENT_ACTIVE,若存在且status正確,則將id_A的status修改為EN_CONTROL_CLIENT_ACTIVE,并將全局變量Active_id更新為id_A,同時(shí)也會(huì)將id_pool中其它id及status更新為初始值,而之后Active_id的值可能會(huì)由于其他應(yīng)用的搶占而發(fā)生變化,因而在執(zhí)行切信源的動(dòng)作之前智能電視需要進(jìn)一步判斷id_A和Active_id是否相同,若相同則執(zhí)行切信源的動(dòng)作,若不同或是id_pool中不存在id_A亦或是id_A的status錯(cuò)誤,則均返回?zé)o權(quán)限,不進(jìn)行應(yīng)用A的信源切換。
參照?qǐng)D7,圖7為本發(fā)明判斷應(yīng)用是否具備執(zhí)行信源切換權(quán)限的另一流程示意圖。在另一實(shí)施例中,某一時(shí)刻應(yīng)用A具有系統(tǒng)分配的id_A,此時(shí)應(yīng)用A若調(diào)用release,同樣地,系統(tǒng)會(huì)根據(jù)id_A在id_pool中查找此id是否存在,并且其狀態(tài)status是否為EN_CONTROL_CLIENT_REQUEST或EN_CONTROL_CLIENT_ACTIVE,若存在且status正確,則再判斷id_A和Active_id是否相同,若相同就將Active_id更新為初始值(-1),不一致則只將id_A及其status更新為初始值。
本實(shí)施例通過設(shè)置一個(gè)全局變量,能夠?qū)崟r(shí)記錄當(dāng)前具有信源切換權(quán)限的id值,通過對(duì)應(yīng)用的權(quán)限ID進(jìn)行進(jìn)一步確認(rèn),保證了只有在權(quán)限ID當(dāng)前具備信源切換權(quán)限且與全局變量相等時(shí)才執(zhí)行信源切換,進(jìn)一步增強(qiáng)了信源切換的準(zhǔn)確性。
進(jìn)一步地,基于上述的實(shí)施例,本發(fā)明智能電視信源切換方法中應(yīng)用的信源切換請(qǐng)求包括搶占式信源切換請(qǐng)求和非搶占式信源切換請(qǐng)求。
參照?qǐng)D8,圖8為本發(fā)明應(yīng)用調(diào)用不同切信源接口進(jìn)行權(quán)限申請(qǐng)的流程示意圖。對(duì)應(yīng)用來說切信源接口可以分為兩種:搶占式切信源接口和非搶占式切信源接口,其中,搶占式切信源接口是指調(diào)用返回?zé)o權(quán)限時(shí),會(huì)自動(dòng)重新申請(qǐng)權(quán)限并執(zhí)行切信源動(dòng)作,非搶占式切信源接口是指調(diào)用返回?zé)o權(quán)限時(shí),不會(huì)自動(dòng)重新申請(qǐng)權(quán)限。
本發(fā)明可以預(yù)先設(shè)置應(yīng)用在執(zhí)行OnResume(重新激活)時(shí)調(diào)用搶占式的切信源接口,在執(zhí)行OnRelease(釋放)時(shí)調(diào)用非搶占式的切信源接口。
以應(yīng)用A和應(yīng)用B進(jìn)行舉例說明。參照?qǐng)D9,圖9為本發(fā)明應(yīng)用A和應(yīng)用B信源切換的應(yīng)用場(chǎng)景示意圖。在某一時(shí)刻Active A執(zhí)行OnResume切信源,之后再執(zhí)行OnRelease切信源,而在執(zhí)行OnRelease切信源之前出現(xiàn)了Active B的OnResume切信源的請(qǐng)求,若采用現(xiàn)有技術(shù),則系統(tǒng)在執(zhí)行Active B的OnResume切信源后會(huì)馬上將Active B的切信源OnRelease,這將導(dǎo)致最終信源切換錯(cuò)誤。通過本發(fā)明的權(quán)限控制機(jī)制,某一時(shí)刻Active B執(zhí)行OnResume調(diào)用搶占式的切信源接口,會(huì)自動(dòng)申請(qǐng)權(quán)限,切換信源的執(zhí)行權(quán)限就被Active B取得,之后Active A執(zhí)行OnRelease再調(diào)用非搶占式的切信源接口時(shí)會(huì)因?yàn)闆]有權(quán)限而不被執(zhí)行,這樣就可以有效解決因系統(tǒng)生命周期錯(cuò)亂導(dǎo)致的信源切換錯(cuò)誤問題,同時(shí)也可以兼容正常的信源切換需求。
本發(fā)明還提供一種智能電視信源切換裝置。
參照?qǐng)D10,圖10為本發(fā)明智能電視信源切換裝置第一實(shí)施例的功能模塊示意圖。所述裝置包括:
分配模塊10,用于接收應(yīng)用的權(quán)限申請(qǐng)請(qǐng)求,根據(jù)所述權(quán)限申請(qǐng)請(qǐng)求從預(yù)設(shè)的權(quán)限管理資源池中為所述應(yīng)用分配一個(gè)權(quán)限ID;
在智能電視系統(tǒng)安裝了多個(gè)應(yīng)用的情形下,智能電視會(huì)根據(jù)不同應(yīng)用的需要來對(duì)當(dāng)前播放信源進(jìn)行切換,比如智能電視當(dāng)前處于數(shù)字電視信源播放模式,用戶通過某個(gè)網(wǎng)絡(luò)視頻應(yīng)用點(diǎn)播網(wǎng)絡(luò)視頻,則智能電視需要切換至HDMI多媒體信源播放模式以播放網(wǎng)絡(luò)視頻。具體地,智能電視可以接收用戶的遙控指令來切換信源,也可以預(yù)先設(shè)置信源切換規(guī)則,比如在預(yù)設(shè)應(yīng)用啟動(dòng)后自動(dòng)切換至該應(yīng)用對(duì)應(yīng)的信源,具體實(shí)施中可進(jìn)行靈活設(shè)置。
與現(xiàn)有技術(shù)不同之處在于,本發(fā)明執(zhí)行信源切換的應(yīng)用必須具備向系統(tǒng)申請(qǐng)的權(quán)限,并且只有當(dāng)申請(qǐng)的權(quán)限符合預(yù)設(shè)條件時(shí),該應(yīng)用才能執(zhí)行信源切換。具體地,應(yīng)用可以在某一時(shí)刻基于用戶觸發(fā)的權(quán)限申請(qǐng)指令向系統(tǒng)進(jìn)行權(quán)限申請(qǐng),也可以在啟動(dòng)后自動(dòng)向系統(tǒng)進(jìn)行權(quán)限申請(qǐng),也可以在應(yīng)用程序運(yùn)行的某一時(shí)刻自動(dòng)向系統(tǒng)進(jìn)行權(quán)限申請(qǐng),總之,本發(fā)明對(duì)應(yīng)用進(jìn)行權(quán)限申請(qǐng)的具體場(chǎng)景和時(shí)刻不作限定。
在應(yīng)用申請(qǐng)權(quán)限時(shí),分配模塊10接收該應(yīng)用的權(quán)限申請(qǐng)請(qǐng)求,并從預(yù)設(shè)的權(quán)限管理資源池中為該應(yīng)用分配一個(gè)權(quán)限ID(此ID是唯一存在的),其中,權(quán)限資源管理池中存儲(chǔ)了若干ID,且每個(gè)ID都有其對(duì)應(yīng)的狀態(tài)。需要說明的是,分配模塊10分配ID時(shí)可以是隨機(jī)分配,也可以是順序分配,且為保證ID與應(yīng)用之間的一一對(duì)應(yīng)關(guān)系,一個(gè)ID只能分配給一個(gè)應(yīng)用。
接收模塊20,用于接收所述應(yīng)用的信源切換請(qǐng)求,所述信源切換請(qǐng)求攜帶分配的所述權(quán)限ID;
在應(yīng)用獲取到系統(tǒng)分配的權(quán)限ID后,接收模塊20接收某一時(shí)刻該應(yīng)用發(fā)起信源切換請(qǐng)求,該信源切換請(qǐng)求攜帶之前分配給應(yīng)用的權(quán)限ID,此時(shí)智能電視可根據(jù)該權(quán)限ID判斷信源切換請(qǐng)求是由哪一個(gè)應(yīng)用發(fā)起的。
第一判斷模塊30,用于判斷所述信源切換請(qǐng)求中的所述權(quán)限ID當(dāng)前是否具備信源切換權(quán)限;
具體地,第一判斷模塊30可查找權(quán)限資源存儲(chǔ)池,進(jìn)而獲取權(quán)限資源存儲(chǔ)池中該權(quán)限ID當(dāng)前的狀態(tài),通過該權(quán)限ID當(dāng)前的狀態(tài)來判斷該權(quán)限ID當(dāng)前是否具備信源切換權(quán)限。比如,對(duì)于一個(gè)ID其狀態(tài)可分為為Request(請(qǐng)求)、Active(活動(dòng))、Release(釋放)三種,若該權(quán)限ID當(dāng)前為Release狀態(tài),則可判定其不具備信源切換權(quán)限。
執(zhí)行模塊40,用于若所述信源切換請(qǐng)求中的所述權(quán)限ID當(dāng)前具備信源切換權(quán)限,則執(zhí)行所述應(yīng)用的信源切換,并限制所述權(quán)限管理資源池中除所述權(quán)限ID之外的所有ID的信源切換權(quán)限。
若所述權(quán)限ID當(dāng)前具備信源切換權(quán)限,則執(zhí)行模塊40執(zhí)行應(yīng)用的信源切換,同時(shí)限制權(quán)限管理資源池中其他ID的信源切換權(quán)限。比如,當(dāng)某一ID有權(quán)限切換信源時(shí),執(zhí)行模塊40會(huì)將權(quán)限管理資源池中其他ID的權(quán)限都取消,且其他ID對(duì)應(yīng)的狀態(tài)也會(huì)變?yōu)镽elease,從而保證了當(dāng)前只有唯一一個(gè)ID具有執(zhí)行權(quán)限。
若所述權(quán)限ID當(dāng)前不具備信源切換權(quán)限,則執(zhí)行模塊40將不會(huì)執(zhí)行信源切換,此時(shí)執(zhí)行模塊40可以向應(yīng)用返回?zé)o權(quán)限信息。
在本實(shí)施例中,分配模塊10接收應(yīng)用的權(quán)限申請(qǐng)請(qǐng)求,根據(jù)所述權(quán)限申請(qǐng)請(qǐng)求從預(yù)設(shè)的權(quán)限管理資源池中為所述應(yīng)用分配一個(gè)權(quán)限ID;接收模塊20接收所述應(yīng)用的信源切換請(qǐng)求,所述信源切換請(qǐng)求攜帶分配的所述權(quán)限ID;第一判斷模塊30判斷所述信源切換請(qǐng)求中的所述權(quán)限ID當(dāng)前是否具備信源切換權(quán)限;若是,則執(zhí)行模塊40執(zhí)行所述應(yīng)用的信源切換,并限制所述權(quán)限管理資源池中除所述權(quán)限ID之外的所有ID的信源切換權(quán)限。本實(shí)施例通過為信源切換提供一種權(quán)限控制機(jī)制,當(dāng)某一應(yīng)用請(qǐng)求切換信源時(shí),必須通過權(quán)限申請(qǐng)才可以完成,當(dāng)某一應(yīng)用獲取執(zhí)行權(quán)限后,其他應(yīng)用就失去了執(zhí)行權(quán)限,從而保證了始終只有一個(gè)應(yīng)用有執(zhí)行權(quán)限,從而解決了多個(gè)應(yīng)用相互切換信源時(shí)導(dǎo)致的信源切換錯(cuò)亂的技術(shù)問題。
進(jìn)一步地,參照?qǐng)D11,圖11為本發(fā)明智能電視信源切換裝置第二實(shí)施例的功能模塊示意圖?;谏鲜鰣D10所示的實(shí)施例,所述裝置還可以包括:
設(shè)置模塊50,用于設(shè)置權(quán)限管理資源池,所述權(quán)限管理資源池用于存儲(chǔ)若干ID和每個(gè)ID當(dāng)前所處的狀態(tài)。
為滿足多應(yīng)用的權(quán)限控制需求,設(shè)置模塊50可以預(yù)先設(shè)置一個(gè)權(quán)限管理資源池,用來存放所有權(quán)限申請(qǐng)控制信息。參照?qǐng)D3,圖3為本發(fā)明權(quán)限資源管理池的設(shè)計(jì)場(chǎng)景示意圖,權(quán)限資源管理池id_pool中存儲(chǔ)了若干ID和每個(gè)ID當(dāng)前所處的狀態(tài),如圖中id_1/status_1,id_2/status_2,…,id_n/status_n,…。同時(shí)參照?qǐng)D4,圖4為本發(fā)明對(duì)應(yīng)用進(jìn)行權(quán)限控制的設(shè)計(jì)場(chǎng)景示意圖。Control_Client(權(quán)限控制)包含id/status兩個(gè)變量,分別用來記錄id以及id對(duì)應(yīng)的狀態(tài),其中id為整形變量(int(1,2,…,n)),狀態(tài)status又分為Request/Active/Release三種。
在設(shè)置好權(quán)限管理資源池后,可將權(quán)限管理資源池中的變量進(jìn)行初始化處理。具體地,可首先將各id初始化為非法值(如-1),status狀態(tài)初始化為EN_CONTROL_CLIENT_RELEASE。當(dāng)有應(yīng)用調(diào)用request時(shí),系統(tǒng)會(huì)從id_pool中分配一個(gè)id給應(yīng)用,同時(shí)修改此id的狀態(tài)status為EN_CONTROL_CLIENT_REQUEST。
進(jìn)一步地,所述第一判斷模塊30還用于:判斷當(dāng)前所述權(quán)限資源存儲(chǔ)池中是否存在所述權(quán)限ID;若是,則判斷所述權(quán)限ID當(dāng)前是否處于預(yù)設(shè)狀態(tài);若是,則判定所述權(quán)限ID當(dāng)前具備信源切換權(quán)限。
由于在權(quán)限資源存儲(chǔ)池在分配給應(yīng)用一個(gè)權(quán)限ID后,該權(quán)限資源存儲(chǔ)池中的變量可能由于用戶的其他操作發(fā)生更改,比如增加或刪除id變量或者id變量的狀態(tài)發(fā)生改變,因此,第一判斷模塊30需要首先判斷當(dāng)前權(quán)限資源存儲(chǔ)池中是否存在應(yīng)用的權(quán)限ID,若存在,則再判斷所述權(quán)限ID當(dāng)前是否處于預(yù)設(shè)狀態(tài),比如預(yù)設(shè)狀態(tài)可以為EN_CONTROL_CLIENT_REQUEST或EN_CONTROL_CLIENT_ACTIVE,若所述權(quán)限ID當(dāng)前的狀態(tài)為這兩種狀態(tài)中的其中一種,則判定所述權(quán)限ID當(dāng)前具備信源切換權(quán)限;反之,若權(quán)限資源存儲(chǔ)池當(dāng)前不存在所述權(quán)限ID或所述權(quán)限ID當(dāng)前的狀態(tài)為EN_CONTROL_CLIENT_RELEASE,則第一判斷模塊30判定所述權(quán)限ID當(dāng)前不具備信源切換權(quán)限。之后,執(zhí)行模塊40將權(quán)限資源存儲(chǔ)池中其他id及其狀態(tài)更新為初始值,以保證當(dāng)前只有唯一一個(gè)id具備信源切換權(quán)限,并執(zhí)行對(duì)應(yīng)應(yīng)用的信源切換。
本實(shí)施例中,通過設(shè)置權(quán)限資源存儲(chǔ)池來記錄各id及其狀態(tài),能夠滿足多應(yīng)用的權(quán)限控制需求,同時(shí)通過判斷信源切換請(qǐng)求中的權(quán)限ID當(dāng)前是否具備信源切換權(quán)限,可以對(duì)應(yīng)用的權(quán)限ID進(jìn)行進(jìn)一步確認(rèn),保證只有在權(quán)限ID當(dāng)前具備信源切換權(quán)限的條件下再執(zhí)行信源切換,增強(qiáng)了信源切換的準(zhǔn)確性。
進(jìn)一步地,參照?qǐng)D12,圖12為本發(fā)明智能電視信源切換裝置第三實(shí)施例的功能模塊示意圖?;谏鲜龅膶?shí)施例,所述裝置還可以包括:
第二判斷模塊60,用于判斷所述權(quán)限ID是否與預(yù)設(shè)的全局變量中的ID相同,所述全局變量用于存儲(chǔ)當(dāng)前具備信源切換權(quán)限的ID;
所述執(zhí)行模塊40還用于在所述權(quán)限ID與預(yù)設(shè)的全局變量中的ID相同時(shí),執(zhí)行所述應(yīng)用的信源切換,并限制所述權(quán)限管理資源池中除所述權(quán)限ID之外的所有ID的信源切換權(quán)限。
在本實(shí)施例中,智能電視除了設(shè)置權(quán)限控制變量id和status外,還設(shè)置了一個(gè)全局變量,記為Active_id(初始化為-1),用于存儲(chǔ)當(dāng)前具備信源切換權(quán)限的ID。
參照?qǐng)D6,圖6為本發(fā)明判斷應(yīng)用是否具備執(zhí)行信源切換權(quán)限的流程示意圖。在一實(shí)施例中,在初始狀態(tài)下,權(quán)限資源資源池中id_A/id_B…/id_X=-1,某一時(shí)刻應(yīng)用A調(diào)用request時(shí),分配模塊10會(huì)從id_pool中分配一個(gè)整形id_A給應(yīng)用,同時(shí)修改id_A的status為EN_CONTROL_CLIENT_REQUEST,之后,應(yīng)用A調(diào)用切信源接口(setinputsource())并發(fā)出信源切換請(qǐng)求,第一判斷模塊30會(huì)根據(jù)id_A在id_pool中查找此id是否存在,并且其狀態(tài)status是否為EN_CONTROL_CLIENT_REQUEST或EN_CONTROL_CLIENT_ACTIVE,若存在且status正確,則將id_A的status修改為EN_CONTROL_CLIENT_ACTIVE,并將全局變量Active_id更新為id_A,同時(shí)也會(huì)將id_pool中其它id及status更新為初始值,而之后Active_id的值可能會(huì)由于其他應(yīng)用的搶占而發(fā)生變化,因而在執(zhí)行切信源的動(dòng)作之前第二判斷模塊60需要進(jìn)一步判斷id_A和Active_id是否相同,若相同則執(zhí)行模塊40執(zhí)行切信源的動(dòng)作,若不同或是id_pool中不存在id_A亦或是id_A的status錯(cuò)誤,則均返回?zé)o權(quán)限,不進(jìn)行應(yīng)用A的信源切換。
參照?qǐng)D7,圖7為本發(fā)明判斷應(yīng)用是否具備執(zhí)行信源切換權(quán)限的另一流程示意圖。在另一實(shí)施例中,某一時(shí)刻應(yīng)用A具有系統(tǒng)分配的id_A,此時(shí)應(yīng)用A若調(diào)用release,同樣地,第一判斷模塊30會(huì)根據(jù)id_A在id_pool中查找此id是否存在,并且其狀態(tài)status是否為EN_CONTROL_CLIENT_REQUEST或EN_CONTROL_CLIENT_ACTIVE,若存在且status正確,則第二判斷模塊60再判斷id_A和Active_id是否相同,若相同就將Active_id更新為初始值(-1),不一致則只將id_A及其status更新為初始值。
本實(shí)施例通過設(shè)置一個(gè)全局變量,能夠?qū)崟r(shí)記錄當(dāng)前具有信源切換權(quán)限的id值,通過對(duì)應(yīng)用的權(quán)限ID進(jìn)行進(jìn)一步確認(rèn),保證了只有在權(quán)限ID當(dāng)前具備信源切換權(quán)限且與全局變量相等時(shí)才執(zhí)行信源切換,進(jìn)一步增強(qiáng)了信源切換的準(zhǔn)確性。
進(jìn)一步地,基于上述的實(shí)施例,本發(fā)明智能電視信源切換裝置中應(yīng)用的信源切換請(qǐng)求包括搶占式信源切換請(qǐng)求和非搶占式信源切換請(qǐng)求。
參照?qǐng)D8,圖8為本發(fā)明應(yīng)用調(diào)用不同切信源接口進(jìn)行權(quán)限申請(qǐng)的流程示意圖。對(duì)應(yīng)用來說切信源接口可以分為兩種:搶占式切信源接口和非搶占式切信源接口,其中,搶占式切信源接口是指調(diào)用返回?zé)o權(quán)限時(shí),會(huì)自動(dòng)重新申請(qǐng)權(quán)限并執(zhí)行切信源動(dòng)作,非搶占式切信源接口是指調(diào)用返回?zé)o權(quán)限時(shí),不會(huì)自動(dòng)重新申請(qǐng)權(quán)限。
本發(fā)明可以預(yù)先設(shè)置應(yīng)用在執(zhí)行OnResume(重新激活)時(shí)調(diào)用搶占式的切信源接口,在執(zhí)行OnRelease(釋放)時(shí)調(diào)用非搶占式的切信源接口。
以應(yīng)用A和應(yīng)用B進(jìn)行舉例說明。參照?qǐng)D8,圖8為本發(fā)明應(yīng)用A和應(yīng)用B信源切換的應(yīng)用場(chǎng)景示意圖。在某一時(shí)刻Active A執(zhí)行OnResume切信源,之后再執(zhí)行OnRelease切信源,而在執(zhí)行OnRelease切信源之前出現(xiàn)了Active B的OnResume切信源的請(qǐng)求,若采用現(xiàn)有技術(shù),則系統(tǒng)在執(zhí)行Active B的OnResume切信源后會(huì)馬上將Active B的切信源OnRelease,這將導(dǎo)致最終信源切換錯(cuò)誤。通過本發(fā)明的權(quán)限控制機(jī)制,某一時(shí)刻Active B執(zhí)行OnResume調(diào)用搶占式的切信源接口,會(huì)自動(dòng)申請(qǐng)權(quán)限,切換信源的執(zhí)行權(quán)限就被Active B取得,之后Active A執(zhí)行OnRelease再調(diào)用非搶占式的切信源接口時(shí)會(huì)因?yàn)闆]有權(quán)限而不被執(zhí)行,這樣就可以有效解決因系統(tǒng)生命周期錯(cuò)亂導(dǎo)致的信源切換錯(cuò)誤問題,同時(shí)也可以兼容正常的信源切換需求。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。