控制應(yīng)用程序登錄狀態(tài)的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別地涉及一種控制應(yīng)用程序登錄狀態(tài)的系統(tǒng)和方法。
【背景技術(shù)】
[0002]隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展和智能設(shè)備的普及,各種運(yùn)行在智能設(shè)備上的應(yīng)用程序(APP)越來越多。其中相當(dāng)多的相關(guān)聯(lián)的應(yīng)用程序可以同時(shí)安裝在不同的智能設(shè)備上,例如同時(shí)安裝在手機(jī)、平板電腦、智能手表這三者中的全部或任意二者中。這里的相關(guān)聯(lián)的應(yīng)用程序通常由同一開發(fā)者開發(fā),并具有相同或相似的界面以及功能。在同一時(shí)間,對(duì)于指定的應(yīng)用程序,只有一個(gè)用戶登錄,如果要另一用戶登錄,那么當(dāng)前已登錄的用戶必須登出。對(duì)于不同的智能設(shè)備中的相關(guān)聯(lián)的應(yīng)用程序的登錄狀態(tài),通常來說,如果用戶使用一個(gè)智能設(shè)備登錄或登出了應(yīng)用程序,那么最好是在另一智能設(shè)備上該用戶也自動(dòng)登錄或登出。目前達(dá)到上述目的的一個(gè)常用方案是通過查詢服務(wù)端的狀態(tài)來實(shí)現(xiàn)。以控制手機(jī)APP和手表APP的登錄狀態(tài)為例,步驟如下:
[0003]1、手機(jī)APP登錄后,向服務(wù)器寫入登錄狀態(tài)信息,此時(shí)的登錄狀態(tài)信息表示用戶已在手機(jī)APP登錄;
[0004]2、手表APP登錄時(shí),周期性地從服務(wù)器獲取登錄狀態(tài)信息,根據(jù)該信息驗(yàn)證手機(jī)APP上是否用戶已登錄;
[0005]3、手表APP在用戶登錄狀態(tài)下運(yùn)行期間,周期性地從服務(wù)器獲取用戶登錄狀態(tài)信息,以確定用戶是否登錄,如果用戶未登錄,說明用戶使用手機(jī)APP進(jìn)行了登出,此時(shí)手表APP也需要相應(yīng)地登出。
[0006]上述步驟中,手表APP和手機(jī)APP的地位可以互換。
[0007]以上的做法存在的不足之處主要在于:對(duì)于兩個(gè)智能設(shè)備上的相同APP,該APP在運(yùn)行期間無法實(shí)時(shí)地得知另一智能設(shè)備上該APP的登錄狀態(tài),需要等到上述步驟2中的獲取周期到來才行,在周期內(nèi),兩個(gè)智能設(shè)備上的相同APP可能存在登錄狀態(tài)的不一致;另夕卜,智能設(shè)備周期性地從服務(wù)器獲取登錄狀態(tài)信息的做法增加了網(wǎng)絡(luò)開銷和智能設(shè)備用電開銷,但是在現(xiàn)實(shí)中,流量資源和電能都是智能設(shè)備需要盡量節(jié)省的寶貴資源。
【發(fā)明內(nèi)容】
[0008]有鑒于此,本發(fā)明提供一種控制應(yīng)用程序登錄狀態(tài)的系統(tǒng)和方法,有助于提高相關(guān)聯(lián)的應(yīng)用程序在不同智能設(shè)備上的登錄狀態(tài)的一致性,并且減小網(wǎng)絡(luò)流量開銷和電能損耗。
[0009]為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種控制應(yīng)用程序登錄狀態(tài)的系統(tǒng)。
[0010]本發(fā)明的控制應(yīng)用程序登錄狀態(tài)的系統(tǒng),用于控制與第一應(yīng)用程序相關(guān)聯(lián)的第二應(yīng)用程序的登錄狀態(tài),所述第一應(yīng)用程序和第二應(yīng)用程序分別運(yùn)行在第一智能設(shè)備和第二智能設(shè)備中,該系統(tǒng)包括設(shè)置在第一智能設(shè)備中的主動(dòng)通知模塊、數(shù)據(jù)寫入模塊、數(shù)據(jù)共享模塊、通知模塊,以及設(shè)置在第二智能設(shè)備中的監(jiān)聽通知模塊和數(shù)據(jù)讀取模塊,其中:所述主動(dòng)通知模塊用于在第一應(yīng)用程序發(fā)生用戶登入或登出的情況下,向所述通知模塊發(fā)送通知信息,并且調(diào)用所述數(shù)據(jù)寫入模塊;所述通知模塊用于在應(yīng)用程序之間轉(zhuǎn)發(fā)通知信息;所述數(shù)據(jù)寫入模塊用于在用戶登入的情況下向數(shù)據(jù)共享模塊中寫入用戶登錄信息,以及在用戶登出的情況下從數(shù)據(jù)共享模塊中刪除所述用戶登錄信息;所述數(shù)據(jù)共享模塊用于所述第一應(yīng)用程序與所述第二應(yīng)用程序共享數(shù)據(jù);所述監(jiān)聽通知模塊用于接收所述通知模塊發(fā)來的通知信息,并且在該通知信息表示用戶登入的情況下調(diào)用所述數(shù)據(jù)讀取模塊,以及在該通知信息表示用戶登出的情況下,控制所述第二應(yīng)用程序呈現(xiàn)用于提示用戶登錄的人機(jī)界面;所述數(shù)據(jù)讀取模塊用于從所述數(shù)據(jù)共享模塊中讀取用戶登錄信息。
[0011]可選地,所述主動(dòng)通知模塊還用于監(jiān)聽第一應(yīng)用程序的用戶改變登錄狀態(tài)的操作,以及:在判斷該操作的類型是登入的情況下從第一應(yīng)用程序獲取用戶登錄信息,然后將包含用戶的信息和表示登入的類型信息的用戶登錄信息發(fā)送給所述數(shù)據(jù)寫入模塊;在判斷該操作的類型是登出的情況下,將內(nèi)容為空的用戶登錄信息發(fā)送給所述數(shù)據(jù)寫入模塊。
[0012]可選地,所述主動(dòng)通知模塊還用于在判斷所述操作的類型是登入的情況下,向所述通知模塊發(fā)送預(yù)設(shè)的第一類通知信息,該第一類通知信息用于表示當(dāng)前發(fā)生第一應(yīng)用程序的用戶登入操作;所述主動(dòng)通知模塊還用于在判斷所述操作的類型是登出的情況下,向所述通知模塊發(fā)送預(yù)設(shè)的第二類通知信息,該第二類通知信息用于表示當(dāng)前發(fā)生第一應(yīng)用程序的用戶登出操作;所述通知模塊還用于將所述第一類通知信息或所述第二類通知信息轉(zhuǎn)發(fā)給所述監(jiān)聽通知模塊。
[0013]可選地,所述數(shù)據(jù)寫入模塊還用于:在收到內(nèi)容不為空的用戶登錄信息的情況下,對(duì)該登錄信息采用第一加密方式加密得到第一密文,并且對(duì)該登錄信息采用第二加密方式加密得到第二密文,然后以所述第一密文為鍵名,所述第二密文為鍵值,按照鍵值對(duì)的形式將所述鍵名和鍵值寫入所述數(shù)據(jù)共享模塊;所述數(shù)據(jù)讀取模塊還用于對(duì)用戶登錄信息采用所述第一加密方式加密得到第一密文,將該第一密文作為鍵名,從所述數(shù)據(jù)共享模塊中讀取該鍵名對(duì)應(yīng)的鍵值,并用所述第二加密方式的密鑰對(duì)該鍵值解密。
[0014]可選地,所述數(shù)據(jù)寫入模塊還用于在收到內(nèi)容為空的用戶登錄信息的情況下,刪除所述數(shù)據(jù)共享模塊中的所述鍵值。
[0015]可選地,所述監(jiān)聽模塊還用于在所述第一應(yīng)用程序啟動(dòng)后,向所述第一智能設(shè)備的操作系統(tǒng)注冊(cè)監(jiān)聽的通知類型。
[0016]根據(jù)本發(fā)明的另一方面,提供了一種控制應(yīng)用程序登錄狀態(tài)的方法。
[0017]本發(fā)明的控制應(yīng)用程序登錄狀態(tài)的方法,用于控制與第一應(yīng)用程序相關(guān)聯(lián)的第二應(yīng)用程序的登錄狀態(tài),所述第一應(yīng)用程序和第二應(yīng)用程序分別運(yùn)行在第一智能設(shè)備和第二智能設(shè)備中,該方法包括:在第一應(yīng)用程序發(fā)生用戶登入或登出的情況下,第一應(yīng)用程序從本地向第二應(yīng)用程序發(fā)送通知,并且修改本地保存的、并且由所述第一應(yīng)用程序和第二應(yīng)用程序共享的用戶登錄狀態(tài)信息;所述第二應(yīng)用程序在收到所述通知的情況下,獲取所述共享的用戶登錄信息,然后根據(jù)所述用戶登錄信息,在用戶登入的情況下持有用戶登錄狀態(tài),在用戶登出的情況下呈現(xiàn)用于提示用戶登錄的人機(jī)界面。
[0018]可選地,所述修改本地保存的、并且由所述第一應(yīng)用程序和第二應(yīng)用程序共享的用戶登錄狀態(tài)信息的步驟包括:在第一用戶程序發(fā)生用戶登入的情況下,對(duì)用戶登錄信息采用第一加密方式加密得到第一密文,并且對(duì)該登錄信息采用第二加密方式加密得到第二密文,然后以所述第一密文為鍵名,所述第二密文為鍵值,按照鍵值對(duì)的形式將所述鍵名和鍵值按照鍵值對(duì)的形式保存為所述用戶登錄狀態(tài)信息;在第一用戶程序發(fā)生用戶登出的情況下,刪除共享的所述用戶登錄狀態(tài)信息中的所述鍵值。
[0019]根據(jù)本發(fā)明的技術(shù)方案,在一個(gè)智能設(shè)備中設(shè)置相關(guān)聯(lián)的、分別安裝在該智能設(shè)備和另一智能設(shè)備中的兩個(gè)應(yīng)用程序的共享數(shù)據(jù),該共享數(shù)據(jù)不為空時(shí)表示第一智能設(shè)備中的上述應(yīng)用程序是用戶登入狀態(tài),為空時(shí)表示該應(yīng)用程序是用戶登出狀態(tài);在第一智能設(shè)備中的應(yīng)用程序的登錄狀態(tài)變化時(shí),通過近距離的無線通信方式通知第二智能設(shè)備中的上述應(yīng)用程序,使其自動(dòng)修改用戶登錄狀態(tài),這種方式能夠?qū)崟r(shí)地改變第二智能設(shè)備中的上述應(yīng)用程序的用戶登錄狀態(tài),從而有助于提高相關(guān)聯(lián)的應(yīng)用程序在不同智能設(shè)備上的登錄狀態(tài)的一致性;由于無需周期性地通過無線互聯(lián)網(wǎng)與服務(wù)器交互,所以有助于減小智能設(shè)備的網(wǎng)絡(luò)流量開銷和電能損耗。
【附圖說明】
[0020]附圖用于更好地理解本發(fā)明,不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。其中:
[0021]圖1是根據(jù)本發(fā)明實(shí)施方式的控制應(yīng)用程序登錄狀態(tài)的系統(tǒng)的基本結(jié)構(gòu)的示意圖。
【具體實(shí)施方式】
[0022]以下結(jié)合附圖對(duì)本發(fā)明的示范性實(shí)施方式做出說明,其中包括本發(fā)明實(shí)施方式的各種細(xì)節(jié)以助于理解,應(yīng)當(dāng)將它們認(rèn)為僅僅是示范性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,可以對(duì)這里描述的實(shí)施方式做出各種改變和修改,而不會(huì)背離本發(fā)明的范圍和精神。同樣,為了清楚和簡明,以下的描述中省略了對(duì)公知功能和結(jié)構(gòu)的描述。
[0023]本發(fā)明的實(shí)施方式適用于兩個(gè)智能設(shè)備的距離較近(通常在十幾米以內(nèi))的情況,使得該兩個(gè)智能設(shè)備能夠用藍(lán)牙、紅外或其他近距離數(shù)據(jù)傳輸方式進(jìn)行數(shù)據(jù)交換。以下以控制手表APP的登錄狀態(tài)為例進(jìn)行說明,該APP同時(shí)安裝在手機(jī)和手表上。
[0024]在手機(jī)中設(shè)置手機(jī)APP和手表APP共享的數(shù)據(jù),該共享的數(shù)據(jù)是手機(jī)的APP的用戶登錄信息,其具體內(nèi)容表示手機(jī)APP的用戶登錄狀態(tài)是登入還是登出。在手機(jī)APP發(fā)生用戶登入的情況下,手機(jī)APP通過藍(lán)牙或紅外等方式向手表APP發(fā)送通知,并且修改手機(jī)中的上述用戶登錄信息。用戶登錄信息可包括用戶的信息和表示登入的類型信息,一般來說用戶的信息即為用戶名,表示登入的類型信息可采用事先規(guī)定的標(biāo)識(shí),該標(biāo)識(shí)表示用戶登入。手表APP收到通知后,從手機(jī)中獲取上述登錄信息,即得知手機(jī)APP當(dāng)前是有用戶登入,然后手表APP自動(dòng)為該用戶登入,即無需用戶作登入的操作。類似地,在手機(jī)APP發(fā)生用戶登出的情況下,手機(jī)APP通過藍(lán)牙或紅外等方式向手表APP發(fā)送通知,并且將上述用戶登錄信息刪除。手機(jī)APP收到通知后,從手機(jī)獲取用戶登錄信息,發(fā)現(xiàn)該信息為空,從而得知用戶已從手機(jī)APP登出,此時(shí)手表APP也執(zhí)行登出,并呈現(xiàn)用戶登錄人機(jī)界面。
[0025]圖1是根據(jù)本發(fā)明實(shí)施方式的控制應(yīng)用程序登錄狀態(tài)的系統(tǒng)的基本結(jié)構(gòu)的示意圖。如圖1所示,控制應(yīng)用程序登錄狀態(tài)的系統(tǒng)100包括設(shè)置在第一智能設(shè)備中的數(shù)據(jù)寫入模塊11、主動(dòng)通知模塊12、數(shù)據(jù)共享模塊13、通知模塊14 ;以及設(shè)置在第二智能設(shè)備中的數(shù)據(jù)讀取模塊21、監(jiān)聽通知模塊22。
[0026]主動(dòng)通知模塊12用于在第一應(yīng)用程序例如手機(jī)APP發(fā)生用戶登入或登出的情況下,向所述通知模塊發(fā)送通知信息,并且調(diào)用數(shù)據(jù)寫入模塊11。通知模塊用于在應(yīng)用程序之間轉(zhuǎn)發(fā)通知信息。數(shù)據(jù)寫入模塊11用于在用戶登入的情況下向數(shù)據(jù)共享模塊13中