本發(fā)明涉及安全領(lǐng)域,尤其涉及一種獲取SIM卡信息的方法、裝置、終端及系統(tǒng)。
背景技術(shù):
隨著移動網(wǎng)絡和數(shù)據(jù)通信技術(shù)的發(fā)展,用戶對終端數(shù)據(jù)速率的要求越來越高。另一方面,在提高網(wǎng)絡速率和頻段利用率的同時,多卡終端(例如,DSDS,DualSimDualStandby,雙卡雙待終端)的出現(xiàn),使得用戶在實現(xiàn)雙卡語音業(yè)務的待機同時,能分別建立雙卡各自的數(shù)據(jù)業(yè)務鏈接。
目前市面上的雙卡終端沒有官方統(tǒng)一的開發(fā)接口,各終端廠商使用私有接口。運行在這些終端上的App(Application,應用程序)無法獲取私有接口信息,導致某些功能不能正常使用。一種解決方法是,針對老款高通、MTK雙卡終端,在App開發(fā)階段加入這些終端的私有接口文檔,使運行在這些終端上的App能夠正常調(diào)用終端的私有接口,但這種方法存在如下缺陷:1.該方法只針對某幾個系統(tǒng)版本,也沒有覆蓋市面上所有的雙卡終端,適用面較窄;2.系統(tǒng)升級導致接口信息改變后,若不重新編寫代碼發(fā)版本就無法適應更新。
因此,有必要提出一種簡單的、適應所有雙卡終端的、能不斷升級的解決辦法。
技術(shù)實現(xiàn)要素:
本發(fā)明提出了一種獲取SIM卡信息的方法、裝置、終端及系統(tǒng),以至少解決應用程序在多卡終端上無法獲取SIM卡信息的缺陷。
本發(fā)明具體是以如下技術(shù)方案實現(xiàn)的:
第一方面,本發(fā)明提供一種獲取SIM卡信息的方法,所述方法包括:
響應來自運行于終端的應用的實例獲取請求,所述請求用于獲取管理器實例;調(diào)用實例創(chuàng)建函數(shù)以創(chuàng)建管理器實例,所述管理器實例包括至少一個包裝接口信息;
將所述管理器實例發(fā)送至所述應用;
從服務器獲取所述終端的接口文檔,所述接口文檔包括私有接口信息以及所述私有接口信息與所述包裝接口信息的映射關(guān)系;
接收來自所述應用的SIM卡信息獲取請求,所述請求攜帶所述管理器實例的包裝接口信息;
根據(jù)所述私有接口信息與所述包裝接口信息的映射關(guān)系,獲取與所述包裝接口信息對應的私有接口信息;
基于所述私有接口信息調(diào)用私有接口,獲得所述終端的SIM卡信息;
將所述終端的SIM卡信息返回至所述應用。
優(yōu)選地,所述從服務器獲取所述終端的接口文檔,包括:
獲取所述終端的終端信息,所述終端信息包括終端的設備信息和系統(tǒng)版本信息;
向服務器發(fā)送接口文檔查詢請求,所述查詢請求攜帶所述終端信息,所述服務器用于接收所述查詢請求并返回與所述終端信息對應的接口文檔;
接收服務器返回的所述終端的接口文檔。
優(yōu)選地,所述服務器用于:收集多卡終端的終端信息和私有接口信息,根據(jù)與所述私有接口信息對應的私有接口的功能和與所述包裝接口信息對應的包裝接口的功能,建立所述私有接口信息與所述包裝接口信息的映射關(guān)系,根據(jù)所述私有接口信息和該私有接口信息與包裝接口信息的映射關(guān)系生成接口文檔,將所述接口文檔與所述終端信息對應存儲。
優(yōu)選地,所述接收服務器返回的所述終端的接口文檔之后,還包括:
查詢本地是否存儲有所述終端的接口文檔;
若否,保存所述服務器返回的接口文檔;
若是,判斷本地保存的接口文檔與服務器返回的接口文檔是否相同,若是,丟棄所述服務器返回的接口文檔,若否,用服務器返回的接口文檔替換本地保存的接口文檔。
優(yōu)選地,所述終端的SIM卡信息包括:SIM卡數(shù)量、指定卡槽的SIM卡的IMSI號碼、指定卡槽的SIM卡的電話號碼和作為數(shù)據(jù)卡的SIM卡的卡槽號;
所述包裝接口信息包括包裝接口getSimCount的信息、包裝接口getPhoneNumber(simSlot)的信息、包裝接口getIMSI(simSlot)的信息和包裝接口getDataSimSlot的信息。
優(yōu)選地,所述接收來自所述應用的SIM卡信息獲取請求,所述請求攜帶所述管理器實例的包裝接口信息,包括:
接收來自所述應用的獲取SIM卡數(shù)量的請求,所述請求攜帶包裝接口getSimCount的信息;或,
接收來自所述應用的獲取指定卡槽的SIM卡的IMSI號碼的請求,所述請求攜帶包裝接口getIMSI(simSlot)的信息和指定的卡槽號;或,
接收來自所述應用的獲取指定卡槽的SIM卡的電話號碼的請求,所述請求攜帶包裝接口getPhoneNumber(simSlot)的信息和指定的卡槽號;或,
接收來自所述應用的獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求,所述請求攜帶包裝接口getDataSimSlot的信息。
優(yōu)選地,所述根據(jù)所述私有接口信息與所述包裝接口信息的映射關(guān)系,獲取與所述包裝接口信息對應的私有接口信息;基于所述私有接口信息調(diào)用私有接口,獲得所述終端的SIM卡信息,包括:
當接收到來自所述應用的獲取SIM卡數(shù)量的請求時,獲取與所述包裝接口getSimCount的信息對應的私有接口信息,根據(jù)所述私有接口信息調(diào)用私有接口,獲得SIM卡數(shù)量;
當接收到來自所述應用的獲取指定卡槽的SIM卡的IMSI號碼的請求時,獲取與所述包裝接口getIMSI(simSlot)的信息對應的私有接口信息,根據(jù)所述私有接口信息和指定的卡槽號調(diào)用私有接口,獲得指定卡槽的SIM卡的IMSI號碼;
當接收到來自所述應用的獲取指定卡槽的SIM卡的電話號碼的請求時,獲取與所述包裝接口getPhoneNumber(simSlot)的信息對應的私有接口信息,根據(jù)所述私有接口信息和指定的卡槽號調(diào)用私有接口,獲得指定卡槽的SIM卡的電話號碼;
當接收到來自所述應用的獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求時,獲取與所述包裝接口getDataSimSlot的信息對應的私有接口信息,根據(jù)所述私有接口信息調(diào)用私有接口,獲得當前作為數(shù)據(jù)卡的SIM卡的卡槽號。
第二方面,本發(fā)明提供一種獲取SIM卡信息的方法,包括:
向管理器發(fā)送實例獲取請求,所述請求用于獲取管理器實例,所述管理器用于調(diào)用實例創(chuàng)建函數(shù)創(chuàng)建管理器實例,所述管理器實例包括至少一個包裝接口信息;
接收管理器返回的管理器實例;
調(diào)用與所述管理器實例的包裝接口信息對應的包裝接口,向所述管理器發(fā)送SIM卡信息獲取請求;
接收所述管理器返回的所述終端的SIM卡信息。
優(yōu)選地,所述終端的SIM卡信息包括:SIM卡數(shù)量、指定卡槽的SIM卡的IMSI號碼、指定卡槽的SIM卡的電話號碼和作為數(shù)據(jù)卡的SIM卡的卡槽號;
所述包裝接口信息包括包裝接口getSimCount的信息、包裝接口getPhoneNumber(simSlot)的信息、包裝接口getIMSI(simSlot)的信息和包裝接口getDataSimSlot的信息。
優(yōu)選地,所述調(diào)用與所述管理器實例的包裝接口信息對應的包裝接口,向所述管理器發(fā)送SIM卡信息獲取請求,包括:
調(diào)用包裝接口getSimCount的信息對應的接口getSimCount,向所述管理器發(fā)送獲取SIM卡數(shù)量的請求;或,
根據(jù)指定的卡槽號,調(diào)用包裝接口getPhoneNumber(simSlot)的信息對應的接口getPhoneNumber(simSlot),向所述管理器發(fā)送獲取指定卡槽的SIM卡的電話號碼的請求;或,
根據(jù)指定的卡槽號,調(diào)用包裝接口getIMSI(simSlot)的信息對應的接口getIMSI(simSlot),向所述管理器發(fā)送獲取指定卡槽的SIM卡的IMSI號碼的請求;或,
調(diào)用包裝接口getDataSimSlot的信息對應的接口getDataSimSlot,向所述管理器發(fā)送獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求。
第三方面,本發(fā)明提供一種獲取SIM卡信息的裝置,所述裝置包括:
第一接收單元,用于接收來自運行于終端的應用的實例獲取請求,所述請求用于獲取管理器實例;
實例創(chuàng)建單元,用于調(diào)用實例創(chuàng)建函數(shù)以創(chuàng)建管理器實例,所述管理器實例包括至少一個包裝接口信息;
第一發(fā)送單元,用于將所述管理器實例發(fā)送至所述應用;
接口文檔獲取單元,用于從服務器獲取所述終端的接口文檔,所述接口文檔包括私有接口信息以及所述私有接口信息與所述包裝接口信息的映射關(guān)系;
第二接收單元,用于接收來自所述應用的SIM卡信息獲取請求,所述請求攜帶所述管理器實例的包裝接口信息;
處理單元,用于根據(jù)所述私有接口信息與所述包裝接口信息的映射關(guān)系,獲取與所述包裝接口信息對應的私有接口信息;
所述處理單元,還用于基于所述私有接口信息調(diào)用私有接口,獲得所述終端的SIM卡信息;
第二發(fā)送單元,用于將所述終端的SIM卡信息返回至所述應用。
優(yōu)選地,所述接口文檔獲取單元包括:
獲取模塊,用于獲取所述終端的終端信息,所述終端信息包括終端的設備信息和系統(tǒng)版本信息;
發(fā)送模塊,用于向服務器發(fā)送接口文檔查詢請求,所述查詢請求攜帶所述終端信息,所述服務器用于接收所述查詢請求并返回與所述終端信息對應的接口文檔;
接收模塊,用于接收服務器返回的所述終端的接口文檔。
優(yōu)選地,所述裝置還包括:
接口文檔存儲單元,用于查詢本地是否存儲有所述終端的接口文檔;若否,保存所述服務器返回的接口文檔;若是,判斷本地保存的接口文檔與服務器返回的接口文檔是否相同,若是,丟棄所述服務器返回的接口文檔,若否,用服務器返回的接口文檔替換本地保存的接口文檔。
優(yōu)選地,所述終端的SIM卡信息包括:SIM卡數(shù)量、指定卡槽的SIM卡的IMSI號碼、指定卡槽的SIM卡的電話號碼和作為數(shù)據(jù)卡的SIM卡的卡槽號;
所述包裝接口信息包括包裝接口getSimCount的信息、包裝接口getPhoneNumber(simSlot)的信息、包裝接口getIMSI(simSlot)的信息和包裝接口getDataSimSlot的信息。
優(yōu)選地,所述第二接收單元包括:
第一接收模塊,用于接收來自所述應用的獲取SIM卡數(shù)量的請求,所述請求攜帶包裝接口getSimCount的信息;
第二接收模塊,用于接收來自所述應用的獲取指定卡槽的SIM卡的IMSI號碼的請求,所述請求攜帶包裝接口getIMSI(simSlot)的信息和指定的卡槽號;
第三接收模塊,用于接收來自所述應用的獲取指定卡槽的SIM卡的電話號碼的請求,所述請求攜帶包裝接口getPhoneNumber(simSlot)的信息和指定的卡槽號;
第四接收模塊,用于接收來自所述應用的獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求,所述請求攜帶包裝接口getDataSimSlot的信息。
優(yōu)選地,所述處理單元包括:
第一處理模塊,用于當接收到來自所述應用的獲取SIM卡數(shù)量的請求時,獲取與所述包裝接口getSimCount的信息對應的私有接口信息,根據(jù)所述私有接口信息調(diào)用私有接口,獲得SIM卡數(shù)量;
第二處理模塊,用于當接收到來自所述應用的獲取指定卡槽的SIM卡的IMSI號碼的請求時,獲取與所述包裝接口getIMSI(simSlot)的信息對應的私有接口信息,根據(jù)所述私有接口信息和指定的卡槽號調(diào)用私有接口,獲得指定卡槽的SIM卡的IMSI號碼;
第三處理模塊,用于當接收到來自所述應用的獲取指定卡槽的SIM卡的電話號碼的請求時,獲取與所述包裝接口getPhoneNumber(simSlot)的信息對應的私有接口信息,根據(jù)所述私有接口信息和指定的卡槽號調(diào)用私有接口,獲得指定卡槽的SIM卡的電話號碼;
第四處理模塊,用于當接收到來自所述應用的獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求時,獲取與所述包裝接口getDataSimSlot的信息對應的私有接口信息,根據(jù)所述私有接口信息調(diào)用私有接口,獲得當前作為數(shù)據(jù)卡的SIM卡的卡槽號。
第四方面,本發(fā)明提供一種獲取SIM卡信息的裝置,包括:
實例獲取單元,用于向管理器發(fā)送實例獲取請求,所述請求用于獲取管理器實例,所述管理器用于調(diào)用實例創(chuàng)建函數(shù)創(chuàng)建管理器實例,所述管理器實例包括至少一個包裝接口信息;
實例接收單元,用于接收管理器返回的管理器實例;
SIM卡信息獲取單元,用于調(diào)用與所述管理器實例的包裝接口信息對應的包裝接口,向所述管理器發(fā)送SIM卡信息獲取請求;
SIM卡信息接收單元,用于接收所述管理器返回的所述終端的SIM卡信息。
優(yōu)選地,所述終端的SIM卡信息包括:SIM卡數(shù)量、指定卡槽的SIM卡的IMSI號碼、指定卡槽的SIM卡的電話號碼和作為數(shù)據(jù)卡的SIM卡的卡槽號;
所述包裝接口信息包括包裝接口getSimCount的信息、包裝接口getPhoneNumber(simSlot)的信息、包裝接口getIMSI(simSlot)的信息和包裝接口getDataSimSlot的信息。
優(yōu)選地,所述SIM卡信息獲取單元包括:
第一SIM卡信息獲取模塊,用于調(diào)用包裝接口getSimCount的信息對應的接口getSimCount,向所述管理器發(fā)送獲取SIM卡數(shù)量的請求;
第二SIM卡信息獲取模塊,用于根據(jù)指定的卡槽號,調(diào)用包裝接口getPhoneNumber(simSlot)的信息對應的接口getPhoneNumber(simSlot),向所述管理器發(fā)送獲取指定卡槽的SIM卡的電話號碼的請求;
第三SIM卡信息獲取模塊,用于根據(jù)指定的卡槽號,調(diào)用包裝接口getIMSI(simSlot)的信息對應的接口getIMSI(simSlot),向所述管理器發(fā)送獲取指定卡槽的SIM卡的IMSI號碼的請求;
第四SIM卡信息獲取模塊,用于調(diào)用包裝接口getDataSimSlot的信息對應的接口getDataSimSlot,向所述管理器發(fā)送獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求。
第五方面,本發(fā)明提供一種終端,所述終端包括上述第三方面所述的裝置和上述第四方面所述的裝置。
第六方面,本發(fā)明提供一種獲取SIM卡信息的系統(tǒng),所述系統(tǒng)包括上述第五方面所述的終端和服務器,所述服務器包括:
信息收集單元,用于收集多卡終端的終端信息和私有接口信息;
接口文檔生成單元,用于根據(jù)與所述私有接口信息對應的私有接口的功能和與所述包裝接口信息對應的包裝接口的功能,建立所述私有接口信息與所述包裝接口信息的映射關(guān)系;根據(jù)所述私有接口信息和該私有接口信息與包裝接口信息的映射關(guān)系生成接口文檔;
存儲單元,用于將所述接口文檔與所述終端信息對應存儲;
請求接收單元,用于接收接口文檔獲取請求,所述請求攜帶終端信息;
接口文檔查詢單元,用于根據(jù)所述請求攜帶的終端信息查找與所述終端信息對應的接口文檔;
接口文檔發(fā)送單元,用于向外發(fā)送所述終端信息對應的接口文檔。
本發(fā)明的一種獲取SIM卡信息的方法、裝置、終端及系統(tǒng),具有如下有益效果:
通過預先收集多卡終端的終端信息和私有接口信息,將功能相似的私有接口進行歸納,向外統(tǒng)一包裝成完全一致的終端開發(fā)接口,將這些接口信息與終端信息對應存儲于服務器;當終端應用需要獲取所在終端的SIM卡信息時,首先從管理器獲得一個管理器實例,管理器從服務器獲得終端的私有接口信息,該應用使用管理器實例向管理器請求SIM卡信息,由管理器調(diào)用相應的私有接口來獲得SIM卡信息并返回給應用。本方案能夠解決應用無法在多卡終端上獲取SIM卡信息的問題;由服務器存儲多卡終端的終端信息和私有接口信息,可以覆蓋市面上所有的多卡終端,適用廣泛;當終端系統(tǒng)升級導致私有接口改變,可以及時獲取到新的私有接口,確保終端應用的功能正常運行。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它附圖。
圖1是本發(fā)明實施例提供的獲取SIM卡信息的方法的流程圖;
圖2是本發(fā)明實施例提供的從服務器獲取和保存接口文檔的方法的流程圖;
圖3是本發(fā)明實施例提供的獲取SIM卡信息的方法的流程圖;
圖4是本發(fā)明實施例提供的在獲取SIM卡信息流程中APP、管理器及服務器之間的交互圖;
圖5是本發(fā)明實施例提供的獲取SIM卡信息的場景示意圖;
圖6是本發(fā)明實施例提供的獲取SIM卡信息的裝置的框圖;
圖7是本發(fā)明實施例提供的獲取SIM卡信息的裝置的框圖;
圖8是本發(fā)明實施例提供的獲取SIM卡信息的系統(tǒng)中的服務器的框圖;
圖9是本發(fā)明實施例提供的終端的結(jié)構(gòu)框圖;
圖10是本發(fā)明實施例提供的服務器的結(jié)構(gòu)框圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設備固有的其它步驟或單元。
實施例一:
本實施例的應用是指計算機應用程序(App),其安裝并運行于移動終端上。大多數(shù)移動終端具有單個容納SIM(用戶識別模塊)卡的卡槽,也有部分移動終端具有多個卡槽,支持多個SIM卡,市面上最常見的支持多卡的移動終端為雙卡移動終端,這類移動終端提供兩個SIM卡卡槽,可以支持兩個SIM卡。每個SIM卡存放一個IMSI(國際移動用戶識別碼)號,IMSI在移動電話網(wǎng)中用于唯一識別移動用戶,當移動終端內(nèi)安裝了多張SIM卡時,需要指定一張聯(lián)網(wǎng)的SIM卡作為數(shù)據(jù)卡,以提供數(shù)據(jù)服務。然而,由于市面上的多卡終端沒有官方統(tǒng)一的開發(fā)接口,各終端廠商采用各自的私有接口,App開發(fā)人員一般不能獲得這些多卡終端的私有接口信息,運行于這些多卡終端上的App無法獲取私有接口信息,導致App的某些功能不能正常使用。例如,雙卡終端上安裝了一張移動的SIM卡和一張電信的SIM卡,其中,移動的SIM卡訂閱了免流量業(yè)務,電信的SIM卡未訂閱免流量業(yè)務,若當前指定的數(shù)據(jù)卡為電信的SIM卡,就不能正常使用訂閱的免流量功能,給用戶帶來損失。
為解決App無法獲取多卡終端的SIM卡信息的缺陷,本發(fā)明實施例提供了一種獲取SIM卡信息的方法,如圖1所示,所述方法包括:
S101:響應來自運行于終端的應用的實例獲取請求,所述請求用于獲取管理器實例;調(diào)用實例創(chuàng)建函數(shù)以創(chuàng)建管理器實例,所述管理器實例包括至少一個包裝接口信息。
在開發(fā)應用程序時,應用開發(fā)者將SDK(Software Development Kit,軟件開發(fā)套件)中的jar包導入工程,為應用程序提供一個管理器類,其對外暴露多個包裝接口,通過SDK的文檔初始化以及調(diào)用相應的接口可以獲得多卡終端的SIM卡信息。應用程序和管理器打包下發(fā),用戶在終端上安裝應用程序時,將一并安裝該管理器。
管理器首先接收應用發(fā)送的實例獲取請求,調(diào)用實例創(chuàng)建函數(shù)getInstance()創(chuàng)建管理器實例,管理器實例可以包括多個包裝接口,優(yōu)選地,所述包裝接口可以包括getSimCount、getIMSI(simSlot)、getPhoneNumber(simSlot)、getDataSimSlot。
S102:將所述管理器實例發(fā)送至所述應用。
管理器將創(chuàng)建的管理器實例返回至應用。
S103:從服務器獲取所述終端的接口文檔,所述接口文檔包括私有接口信息以及所述私有接口信息與所述包裝接口信息的映射關(guān)系。
創(chuàng)建管理器實例過程中,管理器被初始化,并與服務器通信,從服務器獲取終端的接口文檔。參見圖2,管理器從服務器獲取所述終端的接口文檔包括如下步驟:
S201,獲取終端的終端信息,所述終端信息包括終端的設備信息和系統(tǒng)版本信息。
S202,向服務器發(fā)送接口文檔查詢請求,所述查詢請求攜帶所述終端信息,所述服務器用于接收所述查詢請求并返回與所述終端信息對應的接口文檔。
本實施例中,服務器預先獲取多卡終端的終端信息和私有接口信息,根據(jù)與私有接口信息對應的私有接口的功能和與管理器的包裝接口信息對應的包裝接口的功能,建立私有接口信息與包裝接口信息的映射關(guān)系,根據(jù)私有接口信息和該私有接口信息與包裝接口信息的映射關(guān)系生成接口文檔,將接口文檔與終端信息進行對應存儲。本實施例中,管理器對外定義了統(tǒng)一的包裝接口,服務器存儲的包裝接口信息和管理器的包裝接口信息完全一致。當服務器收到管理器發(fā)送的接口文檔查詢請求時,會根據(jù)查詢請求攜帶的終端信息查詢得到對應的接口文檔,并將該接口文檔返回給管理器。
S203,接收服務器返回的所述終端的接口文檔。
作為本實施例的一種優(yōu)選方式,所述步驟S203之后還包括:
S204,查詢本地是否存儲有所述終端的接口文檔;
S205,若本地已存儲接口文檔,判斷本地保存的接口文檔與服務器返回的接口文檔是否相同;
S206,若本地保存的接口文檔與服務器返回的接口文檔相同,丟棄所述服務器返回的接口文檔;
S207,若本地保存的接口文檔與服務器返回的接口文檔不同,用服務器返回的接口文檔替換本地保存的接口文檔;
S208,若本地未存儲接口文檔,保存所述服務器返回的接口文檔。S104:接收來自所述應用的SIM卡信息獲取請求,所述請求攜帶所述管理器實例的包裝接口信息。
應用可以根據(jù)管理器實例的包裝接口信息,調(diào)用與所述包裝接口信息對應的包裝接口,從而向管理器發(fā)送獲取SIM卡信息的請求。
S105:根據(jù)所述私有接口信息與所述包裝接口信息的映射關(guān)系,獲取與所述包裝接口信息對應的私有接口信息。
S106:基于所述私有接口信息調(diào)用私有接口,獲得所述終端的SIM卡信息。管理器保存了服務器返回的接口文檔,根據(jù)接口文檔中私有接口信息與包裝接口信息的映射關(guān)系,查詢得到與SIM卡請求的包裝接口信息對應的私有接口信息,并調(diào)用與該私有接口信息對應的私有接口,從而獲得SIM卡信息。
S107:將所述終端的SIM卡信息返回至所述應用。
作為一種可選的實施方式,終端的SIM卡信息可以包括:SIM卡數(shù)量、指定卡槽的SIM卡的IMSI號碼、指定卡槽的SIM卡的電話號碼和作為數(shù)據(jù)卡的SIM卡的卡槽號;包裝接口信息可以包括包裝接口getSimCount的信息、包裝接口getPhoneNumber(simSlot)的信息、包裝接口getIMSI(simSlot)的信息和包裝接口getDataSimSlot的信息。
應用可以通過調(diào)用包裝接口getSimCount向管理器發(fā)送獲取SIM數(shù)量的請求,管理器收到來自應用的獲取SIM卡數(shù)量的請求,獲得包裝接口getSimCount的信息,并獲取與所述包裝接口getSimCount的信息對應的私有接口信息,根據(jù)所述私有接口信息調(diào)用私有接口,獲得SIM卡數(shù)量,之后將SIM卡數(shù)量發(fā)送給所述應用。
應用可以通過調(diào)用包裝接口getPhoneNumber(simSlot)向管理器發(fā)送獲取指定卡槽的SIM卡的電話號碼的請求;管理器收到來自應用的獲取指定卡槽的SIM卡的電話號碼的請求時,獲得包裝接口getPhoneNumber(simSlot)的信息和指定的卡槽號,并獲取與所述包裝接口getPhoneNumber(simSlot)的信息對應的私有接口信息,根據(jù)所述私有接口信息和指定的卡槽號調(diào)用私有接口,獲得指定卡槽的SIM卡的電話號碼,之后將指定卡槽的SIM卡的電話號碼發(fā)送給所述應用。
應用可以通過調(diào)用包裝接口getIMSI(simSlot)向管理器發(fā)送獲取指定卡槽的SIM卡的IMSI號碼的請求;管理器收到來自應用的獲取指定卡槽的SIM卡的電話號碼的請求,獲得包裝接口getIMSI(simSlot)的信息和指定的卡槽號;并獲取與所述包裝接口getIMSI(simSlot)的信息對應的私有接口信息,根據(jù)所述私有接口信息和指定的卡槽號調(diào)用私有接口,獲得指定卡槽的SIM卡的IMSI號碼,之后將指定卡槽的SIM卡的IMSI號碼發(fā)送給所述應用。
應用可以通過調(diào)用包裝接口getDataSimSlot向管理器發(fā)送獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求,管理器收到來自應用的獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求,獲得包裝接口getDataSimSlot的信息,并獲取與所述包裝接口getDataSimSlot的信息對應的私有接口信息,根據(jù)所述私有接口信息調(diào)用私有接口,獲得當前作為數(shù)據(jù)卡的SIM卡的卡槽號,之后將作為數(shù)據(jù)卡的SIM卡的卡槽號發(fā)送給所述應用。
本實施例通過預先收集多卡終端的終端信息和私有接口的信息,根據(jù)終端私有接口的功能,將功能相似的接口進行歸納,向外統(tǒng)一包裝成完全一致的終端開發(fā)接口,將這些接口信息與終端信息對應存儲于服務器;當終端應用需要獲取所在終端的SIM卡信息時,首先從管理器獲得一個管理器實例,管理器從服務器獲得終端的私有接口信息,該應用使用管理器實例向管理器請求SIM卡信息,由管理器調(diào)用相應的私有接口來獲得SIM卡信息并返回給應用。本方案能夠解決應用無法在多卡終端上獲取SIM卡信息的問題;由服務器存儲多卡終端的終端信息和私有接口信息,可以覆蓋市面上所有的多卡終端,適用廣泛;當終端系統(tǒng)升級導致私有接口改變,可以及時獲取到新的私有接口,確保終端應用的功能正常運行。
實施例二
本發(fā)明實施例提供了一種獲取SIM卡信息的方法,所述方法如圖3所示,包括:
S301:向管理器發(fā)送實例獲取請求,所述請求用于獲取管理器實例,所述管理器用于調(diào)用實例創(chuàng)建函數(shù)創(chuàng)建管理器實例,所述管理器實例包括至少一個包裝接口信息;
S302:接收管理器返回的管理器實例;
S303:調(diào)用與所述管理器實例的包裝接口信息對應的包裝接口,向所述管理器發(fā)送SIM卡信息獲取請求;
S304:接收所述管理器返回的所述終端的SIM卡信息。
作為一種優(yōu)選地實施方式,所述終端的SIM卡信息包括:SIM卡數(shù)量、指定卡槽的SIM卡的IMSI號碼、指定卡槽的SIM卡的電話號碼和作為數(shù)據(jù)卡的SIM卡的卡槽號;所述包裝接口信息包括包裝接口getSimCount的信息、包裝接口getPhoneNumber(simSlot)的信息、包裝接口getIMSI(simSlot)的信息和包裝接口getDataSimSlot的信息。相應地,所述步驟S303包括:
調(diào)用包裝接口getSimCount的信息對應的接口getSimCount,向所述管理器發(fā)送獲取SIM卡數(shù)量的請求;或,
根據(jù)指定的卡槽號,調(diào)用包裝接口getPhoneNumber(simSlot)的信息對應的接口getPhoneNumber(simSlot),向所述管理器發(fā)送獲取指定卡槽的SIM卡的電話號碼的請求;或,
根據(jù)指定的卡槽號,調(diào)用包裝接口getIMSI(simSlot)的信息對應的接口getIMSI(simSlot),向所述管理器發(fā)送獲取指定卡槽的SIM卡的IMSI號碼的請求;或,
調(diào)用包裝接口getDataSimSlot的信息對應的接口getDataSimSlot,向所述管理器發(fā)送獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求。
本實施例方法用于應用端,首先,應用向管理器獲取一個管理器實例,然后通過管理器實例的包裝接口信息,調(diào)用管理器實例的包裝接口,從而向管理器獲取SIM卡信息。以騰訊視頻為例,當應用獲得SIM卡信息之后,可以完成以下功能:
一:在個人中心界面上展示所述SIM卡信息。
二:根據(jù)IMSI號,從服務器查詢到多張SIM卡的免流量訂閱信息,并同時展示給用戶。
三:自動為當前數(shù)據(jù)卡做免流量播放,自動感知用戶切換數(shù)據(jù)卡的操作,并自動為用戶激活免流量訂閱關(guān)系。
本實施例能夠解決應用無法在多卡終端上獲取SIM卡信息的問題;當終端系統(tǒng)升級導致私有接口改變,可以及時獲取到新的私有接口,確保終端應用的功能正常運行,提升用戶體驗。
實施例三
本發(fā)明實施例提供了一種獲取SIM卡信息的方法,參見圖4,包括:
步驟一,應用向管理器獲取實例;
步驟二,管理器調(diào)用實例創(chuàng)建函數(shù)創(chuàng)建管理器實例,將管理器實例發(fā)送至所述應用;同時向服務器發(fā)送攜帶終端信息的接口文檔獲取請求;
步驟三,服務器根據(jù)終端信息查詢得到接口文檔,并向管理器返回終端的接口文檔;
步驟四,管理器接收并保存接口文檔;
步驟五,應用接收并保存管理器實例,調(diào)用管理器實例中包裝接口信息對應的包裝接口,向管理器發(fā)送獲取終端的SIM卡信息的請求;
步驟六:管理器根據(jù)接口文檔中,私有接口信息與包裝接口信息的映射關(guān)系,獲取與應用的SIM卡信息獲取請求攜帶的包裝接口信息對應的私有接口信息,根據(jù)所述私有接口信息調(diào)用私有接口,獲得終端的SIM卡信息,并將所述SIM卡信息發(fā)送給應用。
本方案通過SDK(Software Development Kit,軟件開發(fā)套件)來對外提供功能。應用開發(fā)者將SDK中的jar包導入工程,根據(jù)SDK的文檔初始化以及調(diào)用相應的接口,即可得到其運行的Android終端的SIM信息。本實施例中,SDK提供了一個管理器類DualTelephonyManager,其對外暴露接口getInstance、getSimCount、getIMSI(simSlot)、getPhoneNumber(simSlot)和getDataSimSlot。DualTelephonyManager通過DualTeleponyManager.getInstance()創(chuàng)建得到管理器實例,此時管理器對象會被初始化,并和服務器通信,得到終端的私有接口并保存;后續(xù)可以調(diào)用getSimCount()來得到當前手機的SIM卡數(shù)量,通過getIMSI來得到指定卡槽的SIM卡的IMSI號碼,通過getPhoneNumber來得到指定卡槽的SIM卡的電話號碼,通過getDataSimSlot來得到當前作為數(shù)據(jù)卡的卡槽號。
參見圖5,以雙卡手機為例,本實施例的方案可以分為3個層次,即App訪問DualTelephonyManager(雙卡電話管理器)來得到相應的SIM信息,DualTelephonyManager通過服務器得到雙卡手機的私有接口,DualTelephonyManager通過Java的反射方法等調(diào)用這些私有接口得到App需要的SIM卡信息。
實施例四
本發(fā)明還提供了一種獲取SIM卡信息的裝置,所述裝置可用于實施上述實施例一的獲取SIM卡信息的方法,如圖6所示,獲取SIM卡信息的裝置600包括:
第一接收單元601,用于接收來自運行于終端的應用的實例獲取請求,所述請求用于獲取管理器實例;
實例創(chuàng)建單元602,用于調(diào)用實例創(chuàng)建函數(shù)以創(chuàng)建管理器實例,所述管理器實例包括至少一個包裝接口信息;
第一發(fā)送單元603,用于將所述管理器實例發(fā)送至所述應用;
接口文檔獲取單元604,用于從服務器獲取所述終端的接口文檔,所述接口文檔包括私有接口信息以及所述私有接口信息與所述包裝接口信息的映射關(guān)系;
第二接收單元606,用于接收來自所述應用的SIM卡信息獲取請求,所述請求攜帶所述管理器實例的包裝接口信息;
處理單元607,用于根據(jù)所述私有接口信息與所述包裝接口信息的映射關(guān)系,獲取與所述包裝接口信息對應的私有接口信息;
所述處理單元607,還用于基于所述私有接口信息調(diào)用私有接口,獲得所述終端的SIM卡信息;
第二發(fā)送單元608,用于將所述終端的SIM卡信息返回至所述應用。
作為一種優(yōu)選的方式,所述接口文檔獲取單元604包括:
獲取模塊6041,用于獲取所述終端的終端信息,所述終端信息包括終端的設備信息和系統(tǒng)版本信息;
發(fā)送模塊6042,用于向服務器發(fā)送接口文檔查詢請求,所述查詢請求攜帶所述終端信息,所述服務器用于接收所述查詢請求并返回與所述終端信息對應的接口文檔;
接收模塊6043,用于接收服務器返回的所述終端的接口文檔。
作為一種優(yōu)選的方式,所述獲取SIM卡信息的裝置600還包括:
接口文檔存儲單元605,用于查詢本地是否存儲有所述終端的接口文檔;若否,保存所述服務器返回的接口文檔;若是,判斷本地保存的接口文檔與服務器返回的接口文檔是否相同,若是,丟棄所述服務器返回的接口文檔,若否,用服務器返回的接口文檔替換本地保存的接口文檔。
作為一種優(yōu)選的方式,所述終端的SIM卡信息包括:SIM卡數(shù)量、指定卡槽的SIM卡的IMSI號碼、指定卡槽的SIM卡的電話號碼和作為數(shù)據(jù)卡的SIM卡的卡槽號;所述包裝接口信息包括包裝接口getSimCount的信息、包裝接口getPhoneNumber(simSlot)的信息、包裝接口getIMSI(simSlot)的信息和包裝接口getDataSimSlot的信息。
作為一種優(yōu)選的方式,所述第二接收單元606包括:
第一接收模塊,用于接收來自所述應用的獲取SIM卡數(shù)量的請求,所述請求攜帶包裝接口getSimCount的信息;
第二接收模塊,用于接收來自所述應用的獲取指定卡槽的SIM卡的IMSI號碼的請求,所述請求攜帶包裝接口getIMSI(simSlot)的信息和指定的卡槽號;
第三接收模塊,用于接收來自所述應用的獲取指定卡槽的SIM卡的電話號碼的請求,所述請求攜帶包裝接口getPhoneNumber(simSlot)的信息和指定的卡槽號;
第四接收模塊,用于接收來自所述應用的獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求,所述請求攜帶包裝接口getDataSimSlot的信息。
作為一種優(yōu)選的方式,所述處理單元607包括:
第一處理模塊,用于當接收到來自所述應用的獲取SIM卡數(shù)量的請求時,獲取與所述包裝接口getSimCount的信息對應的私有接口信息,根據(jù)所述私有接口信息調(diào)用私有接口,獲得SIM卡數(shù)量;
第二處理模塊,用于當接收到來自所述應用的獲取指定卡槽的SIM卡的IMSI號碼的請求時,獲取與所述包裝接口getIMSI(simSlot)的信息對應的私有接口信息,根據(jù)所述私有接口信息和指定的卡槽號調(diào)用私有接口,獲得指定卡槽的SIM卡的IMSI號碼;
第三處理模塊,用于當接收到來自所述應用的獲取指定卡槽的SIM卡的電話號碼的請求時,獲取與所述包裝接口getPhoneNumber(simSlot)的信息對應的私有接口信息,根據(jù)所述私有接口信息和指定的卡槽號調(diào)用私有接口,獲得指定卡槽的SIM卡的電話號碼;
第四處理模塊,用于當接收到來自所述應用的獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求時,獲取與所述包裝接口getDataSimSlot的信息對應的私有接口信息,根據(jù)所述私有接口信息調(diào)用私有接口,獲得當前作為數(shù)據(jù)卡的SIM卡的卡槽號。
實施例五
本發(fā)明還提供了一種獲取SIM卡信息的裝置,所述裝置可用于實施上述實施例二的獲取SIM卡信息的方法,如圖7所示,獲取SIM卡信息的裝置700包括:
實例獲取單元701,用于向管理器發(fā)送實例獲取請求,所述請求用于獲取管理器實例,所述管理器用于調(diào)用實例創(chuàng)建函數(shù)創(chuàng)建管理器實例,所述管理器實例包括至少一個包裝接口信息;
實例接收單元702,用于接收管理器返回的管理器實例;
SIM卡信息獲取單元703,用于調(diào)用與所述管理器實例的包裝接口信息對應的包裝接口,向所述管理器發(fā)送SIM卡信息獲取請求;
SIM卡信息接收單元704,用于接收所述管理器返回的所述終端的SIM卡信息。
作為一種優(yōu)選的方式,所述終端的SIM卡信息包括:SIM卡數(shù)量、指定卡槽的SIM卡的IMSI號碼、指定卡槽的SIM卡的電話號碼和作為數(shù)據(jù)卡的SIM卡的卡槽號;所述包裝接口信息包括包裝接口getSimCount的信息、包裝接口getPhoneNumber(simSlot)的信息、包裝接口getIMSI(simSlot)的信息和包裝接口getDataSimSlot的信息。
作為一種優(yōu)選的方式,所述SIM卡信息獲取單元703包括:
第一SIM卡信息獲取模塊,用于調(diào)用包裝接口getSimCount的信息對應的接口getSimCount,向所述管理器發(fā)送獲取SIM卡數(shù)量的請求;
第二SIM卡信息獲取模塊,用于根據(jù)指定的卡槽號,調(diào)用包裝接口getPhoneNumber(simSlot)的信息對應的接口getPhoneNumber(simSlot),向所述管理器發(fā)送獲取指定卡槽的SIM卡的電話號碼的請求;
第三SIM卡信息獲取模塊,用于根據(jù)指定的卡槽號,調(diào)用包裝接口getIMSI(simSlot)的信息對應的接口getIMSI(simSlot),向所述管理器發(fā)送獲取指定卡槽的SIM卡的IMSI號碼的請求;
第四SIM卡信息獲取模塊,用于調(diào)用包裝接口getDataSimSlot的信息對應的接口getDataSimSlot,向所述管理器發(fā)送獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求。
實施例六
本發(fā)明還提供了一種終端,所述終端包括上述實施例四所述的獲取SIM卡信息的裝置600和實施例五所述的獲取SIM卡信息的裝置700。
實施例七
本發(fā)明還提供了一種獲取SIM卡信息的系統(tǒng),本實施例能夠用于實現(xiàn)上述實施例三中提供的獲取SIM卡信息的方法,所述系統(tǒng)包括實施例六所述的終端和服務器,如圖8所示,服務器800包括:
信息收集單元801,用于收集多卡終端的終端信息和私有接口信息;
接口文檔生成單元802,用于根據(jù)與所述私有接口信息對應的私有接口的功能和與所述包裝接口信息對應的包裝接口的功能,建立所述私有接口信息與所述包裝接口信息的映射關(guān)系;根據(jù)所述私有接口信息和該私有接口信息與包裝接口信息的映射關(guān)系生成接口文檔;
存儲單元803,用于將所述接口文檔與所述終端信息對應存儲;
請求接收單元804,用于接收接口文檔獲取請求,所述請求攜帶終端信息;
接口文檔查詢單元805,用于根據(jù)所述請求攜帶的終端信息查找與所述終端信息對應的接口文檔;
接口文檔發(fā)送單元806,用于向外發(fā)送所述終端信息對應的接口文檔。
對于市面上已有的多卡終端,通過反向工程或者廠商合作得到這些終端的私有開發(fā)接口,并歸納各廠商間相似的接口,對外統(tǒng)一包裝成完全一致的終端開發(fā)接口(getSimCount、getIMSI(simSlot)、getPhoneNumber(simSlot)、getDataSimSlot)。本實施例通過在服務器云端存儲終端信息和對應的接口文檔,并且后續(xù)不斷將新上市的多卡終端的相關(guān)內(nèi)容補充到服務器上,當終端應用使用本方案提供的開發(fā)接口(SDK)來獲取需要的信息時,SDK訪問后臺服務器,通過終端信息得到廠商的私有開發(fā)接口,SDK在終端上調(diào)用這些私有開發(fā)接口,得到相應的信息返回給終端應用。本方案能夠解決應用無法在多卡終端上獲取SIM卡信息的問題;由服務器存儲多卡終端的終端信息和私有接口信息,可以覆蓋市面上所有的多卡終端,適用廣泛;當終端系統(tǒng)升級導致私有接口改變,可以及時獲取到新的私有接口,確保終端應用的功能正常運行。
實施例八
本發(fā)明實施例還提供了一種終端,如圖9所示,該終端可以用于實施上述實施例中提供的獲取SIM卡信息的方法。具體來講:
所述終端可以包括RF(RadioFrequency,射頻)電路110、包括有一個或一個以上計算機可讀存儲介質(zhì)的存儲器120、輸入單元130、顯示單元140、傳感器150、音頻電路160、WiFi(wirelessfidelity,無線保真)模塊170、包括有一個或者一個以上處理核心的處理器180、以及電源190等部件。本領(lǐng)域技術(shù)人員可以理解,圖9中示出的終端結(jié)構(gòu)并不構(gòu)成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:
RF電路110可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,特別地,將基站的下行信息接收后,交由一個或者一個以上處理器180處理;另外,將涉及上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路110包括但不限于天線、至少一個放大器、調(diào)諧器、一個或多個振蕩器、用戶身份模塊(SIM)卡、收發(fā)信機、耦合器、LNA(Low Noise Amplifier,低噪聲放大器)、雙工器等。此外,RF電路110還可以通過無線通信與網(wǎng)絡和其他設備通信。所述無線通信可以使用任一通信標準或協(xié)議,包括但不限于GSM(Global System of Mobile communication,全球移動通訊系統(tǒng))、GPRS(General Packet Radio Service,通用分組無線服務)、CDMA(Code Division Multiple Access,碼分多址)、WCDMA(Wideband Code Division Multiple Access,寬帶碼分多址)、LTE(Long Term Evolution,長期演進)、電子郵件、SMS(Short Messaging Service,短消息服務)等。
存儲器120可用于存儲軟件程序以及模塊,處理器180通過運行存儲在存儲器120的軟件程序以及模塊,從而執(zhí)行各種功能應用以及數(shù)據(jù)處理。存儲器120可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、功能所需的應用程序等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)所述終端的使用所創(chuàng)建的數(shù)據(jù)等。此外,存儲器120可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。相應地,存儲器120還可以包括存儲器控制器,以提供處理器180和輸入單元130對存儲器120的訪問。
輸入單元130可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與用戶設置以及功能控制有關(guān)的鍵盤、鼠標、操作桿、光學或者軌跡球信號輸入。具體地,輸入單元130可包括觸敏表面131以及其他輸入設備132。觸敏表面131,也稱為觸摸顯示屏或者觸控板,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸敏表面131上或在觸敏表面131附近的操作),并根據(jù)預先設定的程式驅(qū)動相應的連接裝置??蛇x的,觸敏表面131可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點坐標,再送給處理器180,并能接收處理器180發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現(xiàn)觸敏表面131。除了觸敏表面131,輸入單元130還可以包括其他輸入設備132。具體地,其他輸入設備132可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標、操作桿等中的一種或多種。
顯示單元140可用于顯示由用戶輸入的信息或提供給用戶的信息以及所述終端的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標、視頻和其任意組合來構(gòu)成。顯示單元140可包括顯示面板141,可選的,可以采用LCD(Liquid Crystal Display,液晶顯示器)、OLED(Organic Light-Emitting Diode,有機發(fā)光二極管)等形式來配置顯示面板141。進一步的,觸敏表面131可覆蓋顯示面板141,當觸敏表面131檢測到在其上或附近的觸摸操作后,傳送給處理器180以確定觸摸事件的類型,隨后處理器180根據(jù)觸摸事件的類型在顯示面板141上提供相應的視覺輸出。雖然在圖9中,觸敏表面131與顯示面板141是作為兩個獨立的部件來實現(xiàn)輸入和輸入功能,但是在某些實施例中,可以將觸敏表面131與顯示面板141集成而實現(xiàn)輸入和輸出功能。
所述終端還可包括至少一種傳感器150,比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板141的亮度,接近傳感器可在所述終端移動到耳邊時,關(guān)閉顯示面板141和/或背光。作為運動傳感器的一種,重力加速度傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別終端姿態(tài)的應用(比如橫豎屏切換、相關(guān)游戲、磁力計姿態(tài)校準)、振動識別相關(guān)功能(比如計步器、敲擊)等;至于所述終端還可配置的陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路160、揚聲器161,傳聲器162可提供用戶與所述終端之間的音頻接口。音頻電路160可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號,傳輸?shù)綋P聲器161,由揚聲器161轉(zhuǎn)換為聲音信號輸出;另一方面,傳聲器162將收集的聲音信號轉(zhuǎn)換為電信號,由音頻電路160接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器180處理后,經(jīng)RF電路110以發(fā)送給比如另一終端,或者將音頻數(shù)據(jù)輸出至存儲器120以便進一步處理。音頻電路160還可能包括耳塞插孔,以提供外設耳機與所述終端的通信。
WiFi屬于短距離無線傳輸技術(shù),所述終端通過WiFi模塊170可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖9示出了WiFi模塊170,但是可以理解的是,其并不屬于所述終端的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
處理器180是所述終端的控制中心,利用各種接口和線路連接整個終端的各個部分,通過運行或執(zhí)行存儲在存儲器120內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器120內(nèi)的數(shù)據(jù),執(zhí)行所述終端的各種功能和處理數(shù)據(jù),從而對終端進行整體監(jiān)控??蛇x的,處理器180可包括一個或多個處理核心;優(yōu)選的,處理器180可集成應用處理器和調(diào)制解調(diào)處理器,其中,應用處理器主要處理操作系統(tǒng)、用戶界面和應用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖牵鲜稣{(diào)制解調(diào)處理器也可以不集成到處理器180中。
所述終端還包括給各個部件供電的電源190(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器180邏輯相連,從而通過電源管理系統(tǒng)實現(xiàn)管理充電、放電、以及功耗管理等功能。電源190還可以包括一個或一個以上的直流或交流電源、再充電系統(tǒng)、電源故障檢測電路、電源轉(zhuǎn)換器或者逆變器、電源狀態(tài)指示器等任意組件。
盡管未示出,所述終端還可以包括攝像頭、藍牙模塊等,在此不再贅述。具體在本實施例中,終端的顯示單元是觸摸屏顯示器,終端還包括有存儲器,以及一個或者一個以上的程序,其中一個或者一個以上程序存儲于存儲器中,且經(jīng)配置以由一個或者一個以上處理器執(zhí)行述一個或者一個以上程序包含用于進行以下操作的指令:
響應來自運行于終端的應用的實例獲取請求,所述請求用于獲取管理器實例;調(diào)用實例創(chuàng)建函數(shù)以創(chuàng)建管理器實例,所述管理器實例包括至少一個包裝接口信息;
將所述管理器實例發(fā)送至所述應用;
從服務器獲取所述終端的接口文檔,所述接口文檔包括私有接口信息以及所述私有接口信息與所述包裝接口信息的映射關(guān)系;
接收來自所述應用的SIM卡信息獲取請求,所述請求攜帶所述管理器實例的包裝接口信息;
根據(jù)所述私有接口信息與所述包裝接口信息的映射關(guān)系,獲取與所述包裝接口信息對應的私有接口信息;
基于所述私有接口信息調(diào)用私有接口,獲得所述終端的SIM卡信息;
將所述終端的SIM卡信息返回至所述應用。
進一步地,終端的存儲器中,還包含用于執(zhí)行以下操作的指令:
獲取所述終端的終端信息,所述終端信息包括終端的設備信息和系統(tǒng)版本信息;
向服務器發(fā)送接口文檔查詢請求,所述查詢請求攜帶所述終端信息,所述服務器用于接收所述查詢請求并返回與所述終端信息對應的接口文檔;
接收服務器返回的所述終端的接口文檔。
進一步地,終端的存儲器中,還包含用于執(zhí)行以下操作的指令:
所述接收服務器返回的所述終端的私有接口之后,還包括:
查詢本地是否存儲有所述終端的接口文檔;
若否,保存所述服務器返回的接口文檔;
若是,判斷本地保存的接口文檔與服務器返回的接口文檔是否相同,若是,丟棄所述服務器返回的接口文檔,若否,用服務器返回的接口文檔替換本地保存的接口文檔。。
進一步地,終端的存儲器中,還包含用于執(zhí)行以下操作的指令:
所述終端的SIM卡信息包括:SIM卡數(shù)量、指定卡槽的SIM卡的IMSI號碼、指定卡槽的SIM卡的電話號碼和作為數(shù)據(jù)卡的SIM卡的卡槽號;所述包裝接口信息包括包裝接口getSimCount的信息、包裝接口getPhoneNumber(simSlot)的信息、包裝接口getIMSI(simSlot)的信息和包裝接口getDataSimSlot的信息。
接收來自所述應用的獲取SIM卡數(shù)量的請求,所述請求攜帶包裝接口getSimCount的信息;或,
接收來自所述應用的獲取指定卡槽的SIM卡的IMSI號碼的請求,所述請求攜帶包裝接口getIMSI(simSlot)的信息和指定的卡槽號;或,
接收來自所述應用的獲取指定卡槽的SIM卡的電話號碼的請求,所述請求攜帶包裝接口getPhoneNumber(simSlot)的信息和指定的卡槽號;或,
接收來自所述應用的獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求,所述請求攜帶包裝接口getDataSimSlot的信息。
進一步地,終端的存儲器中,還包含用于執(zhí)行以下操作的指令:
當接收到來自所述應用的獲取SIM卡數(shù)量的請求時,獲取與所述包裝接口getSimCount的信息對應的私有接口信息,根據(jù)所述私有接口信息調(diào)用私有接口,獲得SIM卡數(shù)量;
當接收到來自所述應用的獲取指定卡槽的SIM卡的IMSI號碼的請求時,獲取與所述包裝接口getIMSI(simSlot)的信息對應的私有接口信息,根據(jù)所述私有接口信息和指定的卡槽號調(diào)用私有接口,獲得指定卡槽的SIM卡的IMSI號碼;
當接收到來自所述應用的獲取指定卡槽的SIM卡的電話號碼的請求時,獲取與所述包裝接口getPhoneNumber(simSlot)的信息對應的私有接口信息,根據(jù)所述私有接口信息和指定的卡槽號調(diào)用私有接口,獲得指定卡槽的SIM卡的電話號碼;
當接收到來自所述應用的獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求時,獲取與所述包裝接口getDataSimSlot的信息對應的私有接口信息,根據(jù)所述私有接口信息調(diào)用私有接口,獲得當前作為數(shù)據(jù)卡的SIM卡的卡槽號。
實施例九
本發(fā)明實施例還提供了一種計算機可讀存儲介質(zhì),該計算機可讀存儲介質(zhì)可以是上述實施例中的存儲器中所包含的計算機可讀存儲介質(zhì);也可以是單獨存在,未裝配入終端中的計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)存儲有一個或者一個以上程序,一個或者一個以上程序被一個或者一個以上的處理器用來執(zhí)行防止信息泄露的方法,所述方法包括:
響應來自運行于終端的應用的實例獲取請求,所述請求用于獲取管理器實例;調(diào)用實例創(chuàng)建函數(shù)以創(chuàng)建管理器實例,所述管理器實例包括至少一個包裝接口信息;
將所述管理器實例發(fā)送至所述應用;
從服務器獲取所述終端的接口文檔,所述接口文檔包括私有接口信息以及所述私有接口信息與所述包裝接口信息的映射關(guān)系;
接收來自所述應用的SIM卡信息獲取請求,所述請求攜帶所述管理器實例的包裝接口信息;
根據(jù)所述私有接口信息與所述包裝接口信息的映射關(guān)系,獲取與所述包裝接口信息對應的私有接口信息;
基于所述私有接口信息調(diào)用私有接口,獲得所述終端的SIM卡信息;
將所述終端的SIM卡信息返回至所述應用。
進一步地,該方法還包括:所述從服務器獲取所述終端的接口文檔,包括:獲取所述終端的終端信息,所述終端信息包括終端的設備信息和系統(tǒng)版本信息;向服務器發(fā)送接口文檔查詢請求,所述查詢請求攜帶所述終端信息,所述服務器用于接收所述查詢請求并返回與所述終端信息對應的接口文檔;接收服務器返回的所述終端的接口文檔。
進一步地,該方法還包括:所述服務器用于:收集多卡終端的終端信息和私有接口信息,根據(jù)與所述私有接口信息對應的私有接口的功能和與所述包裝接口信息對應的包裝接口的功能,建立所述私有接口信息與所述包裝接口信息的映射關(guān)系,根據(jù)所述私有接口信息和該私有接口信息與包裝接口信息的映射關(guān)系生成接口文檔,將所述接口文檔與所述終端信息對應存儲。
進一步地,該方法還包括:所述接收服務器返回的所述終端的私有接口之后,還包括:
查詢本地是否存儲有所述終端的接口文檔;
若否,保存所述服務器返回的接口文檔;
若是,判斷本地保存的接口文檔與服務器返回的接口文檔是否相同,若是,丟棄所述服務器返回的接口文檔,若否,用服務器返回的接口文檔替換本地保存的接口文檔。
進一步地,該方法還包括:所述終端的SIM卡信息包括:SIM卡數(shù)量、指定卡槽的SIM卡的IMSI號碼、指定卡槽的SIM卡的電話號碼和作為數(shù)據(jù)卡的SIM卡的卡槽號;所述包裝接口信息包括包裝接口getSimCount的信息、包裝接口getPhoneNumber(simSlot)的信息、包裝接口getIMSI(simSlot)的信息和包裝接口getDataSimSlot的信息。所述接收來自所述應用的SIM卡信息獲取請求,所述請求攜帶所述管理器實例的包裝接口信息,包括:
接收來自所述應用的獲取SIM卡數(shù)量的請求,所述請求攜帶包裝接口getSimCount的信息;或,
接收來自所述應用的獲取指定卡槽的SIM卡的IMSI號碼的請求,所述請求攜帶包裝接口getIMSI(simSlot)的信息和指定的卡槽號;或,
接收來自所述應用的獲取指定卡槽的SIM卡的電話號碼的請求,所述請求攜帶包裝接口getPhoneNumber(simSlot)的信息和指定的卡槽號;或,接收來自所述應用的獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求,所述請求攜帶包裝接口getDataSimSlot的信息。
進一步地,該方法還包括:所述根據(jù)所述私有接口信息與所述包裝接口信息的映射關(guān)系,獲取與所述包裝接口信息對應的私有接口信息;基于所述私有接口信息調(diào)用私有接口,獲得所述終端的SIM卡信息,包括:
當接收到來自所述應用的獲取SIM卡數(shù)量的請求時,獲取與所述包裝接口getSimCount的信息對應的私有接口信息,根據(jù)所述私有接口信息調(diào)用私有接口,獲得SIM卡數(shù)量;
當接收到來自所述應用的獲取指定卡槽的SIM卡的IMSI號碼的請求時,獲取與所述包裝接口getIMSI(simSlot)的信息對應的私有接口信息,根據(jù)所述私有接口信息和指定的卡槽號調(diào)用私有接口,獲得指定卡槽的SIM卡的IMSI號碼;
當接收到來自所述應用的獲取指定卡槽的SIM卡的電話號碼的請求時,獲取與所述包裝接口getPhoneNumber(simSlot)的信息對應的私有接口信息,根據(jù)所述私有接口信息和指定的卡槽號調(diào)用私有接口,獲得指定卡槽的SIM卡的電話號碼;
當接收到來自所述應用的獲取作為數(shù)據(jù)卡的SIM卡的卡槽號的請求時,獲取與所述包裝接口getDataSimSlot的信息對應的私有接口信息,根據(jù)所述私有接口信息調(diào)用私有接口,獲得當前作為數(shù)據(jù)卡的SIM卡的卡槽號。
實施例十
本發(fā)明實施例還提供的一種服務器結(jié)構(gòu)示意圖,如圖10所示。該服務器900可因配置或性能不同而產(chǎn)生比較大的差異,可以包括一個或一個以上中央處理器(centralprocessingunits,CPU)922(例如,一個或一個以上處理器)和存儲器932,一個或一個以上存儲應用程序942或數(shù)據(jù)944的存儲介質(zhì)930(例如一個或一個以上海量存儲設備)。其中,存儲器932和存儲介質(zhì)930可以是短暫存儲或持久存儲。存儲在存儲介質(zhì)930的程序可以包括一個或一個以上模塊(圖示未示出),每個模塊可以包括對服務器中的一系列指令操作。更進一步地,中央處理器922可以設置為與存儲介質(zhì)930通信,在服務器900上執(zhí)行存儲介質(zhì)930中的一系列指令操作。服務器900還可以包括一個或一個以上電源926,一個或一個以上有線或無線網(wǎng)絡接口950,一個或一個以上輸入輸出接口958,和/或,一個或一個以上操作系統(tǒng)941,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,F(xiàn)reeBSDTM等等。上述方法實施例中所述涉及的服務器的相關(guān)功能可以基于該圖10所示的服務器結(jié)構(gòu)。
在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的終端,可通過其它的方式實現(xiàn)。其中,以上所描述的系統(tǒng)實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
以上所述是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍。