注:本篇只講雙卡的發(fā)展原理,以及解決方法,不提供代碼氮昧。想要代碼的可以略過。
以下用到的名詞解釋
IMEI:國際移動設(shè)備身份碼
IMSI:SIM卡的身份碼系羞,一張卡只有一個IMSI郭计。
芯片廠商:MTK,Qualcomm椒振,展訊等昭伸。
手機(jī)廠商:三星,華為澎迎,樂視庐杨,小米等。
一夹供、雙卡由來以及廠商的解決方案
在中國灵份,聰明的中國人早雙卡歷史悠久,我記得在以前非智能機(jī)時代就實現(xiàn)了哮洽。猶記得以前廣告
一個機(jī)子兩張卡填渠,打電話一張卡,發(fā)短信一張卡鸟辅。
家里一張卡氛什,工作一張卡,家庭工作兩不誤匪凉。
老婆一張卡枪眉,小三一張卡,老婆小三兩不誤再层。
so贸铜,延續(xù)古老的傳統(tǒng),以及這種較好的模式聂受,智能手機(jī)理應(yīng)繼承這個優(yōu)良傳統(tǒng)蒿秦。
但是,在美國蛋济,因為運營商綁定銷售渤早。所以基本只有一張卡,沒這個需求啊瘫俊。5.0之前沒有雙卡的API通用接口鹊杖,各個廠商都有自己的實現(xiàn)方法悴灵,導(dǎo)致現(xiàn)在的群魔亂舞。標(biāo)準(zhǔn)不一骂蓖。方法不一积瞒。手機(jī)廠商買芯片的時候有可能把雙卡解決方案一并購買,也有可能自己實現(xiàn)登下。
獲取雙卡信息的方法主要手段是通過反射實現(xiàn)茫孔,需要具體的方法全名,難點在于如何知道雙卡管理的包名以及類名以及調(diào)用的方法被芳。
二缰贝、雙卡ROM上的原理
底層的不太懂,大家可以找相關(guān)文章畔濒,不過在ROM層面上剩晴,廠商實現(xiàn)雙卡管理,主要兩種方法:
第一種:在原有的單卡管理類上額外添加雙卡信息獲取的方法侵状,直接反射全部方法赞弥,然后一一查找即可。
第二種趣兄,新建一個單獨的雙卡管理器的包绽左,需要反射全部找到雙卡管理的實例,再反射全局艇潭,再查找拼窥,或者直接反編譯。
如果獲取了手機(jī)的芯片廠商蹋凝,并且使用 是該廠商提供的方案鲁纠,理論上可以獲取使用該廠商通用雙卡解決方案去獲取。
如果手機(jī)廠商自己實現(xiàn)雙卡管理仙粱,如三星。則需要尋找特定的雙卡管理包來獲取彻舰。
以上為基本原理跟大方向
三伐割、實現(xiàn)雙卡需要考慮的點
1、芯片的獲取問題刃唤,一個廠商會生成多種芯片隔心,需要根據(jù)獲取到的芯片型號來判斷廠商。
2尚胞、手機(jī)獲取的手機(jī)基礎(chǔ)信息硬霍,并不會告訴你是什么芯片,這個資料有可能會被修改笼裳,如樂視會把那個值改為lete唯卖,而不顯示MTK粱玲。
3、不同芯片拜轨,需要獲取不同芯片的通用方法抽减,一個手機(jī)廠商有可能采購多種芯片。
4橄碾、ROM的獲取問題卵沉,ROM的發(fā)布信息并不會直接告訴你是哪個廠商的ROM。
5法牲、ROM和安卓SDK版本之間的差異會造成獲取方法的不同史汗。
6、如果使用反射跟反編譯系統(tǒng)ROM的方法拒垃,需要大量時間停撞。并且,這個結(jié)果有可能僅僅只對被反編譯的機(jī)型跟特定的ROM有用恶复。
7怜森、需要提供市場上常見的雙卡手機(jī),得出的結(jié)果也只能保證經(jīng)過測試的手機(jī)谤牡,并且手機(jī)剛好使用同一版本ROM才能保證獲取副硅。
8、如果手機(jī)刷了第三方ROM翅萤,也會造成上訴方法失效恐疲。
總之,碎片化的嚴(yán)重套么,造成并沒有一個統(tǒng)一的方法去完美獲取培己。需要花時間在適配上