CoreTelephony Framework
1. CTTelephonyNetworkInfo:提供手機(jī)注冊(cè)的運(yùn)營(yíng)商信息棘幸、當(dāng)前接入的無(wú)線通訊技術(shù)巷疼、切換運(yùn)營(yíng)商(切換SIM卡)通知刻坊、當(dāng)前無(wú)線接入技術(shù)變更通知胳喷。
由于蘋(píng)果手機(jī)也支持了雙卡雙待添寺,所以新API從iOS12開(kāi)始支持防症。
以下是在不同情況下對(duì)部分api的測(cè)試。
實(shí)用場(chǎng)景:
? 1. 判斷手機(jī)有沒(méi)插卡:通過(guò)serviceSubscriberCellularProviders判斷:遍歷每個(gè)value扩淀,若每個(gè)CTCarrier的ISO Country Code都為nil則沒(méi)插卡楔敌,不可以Carrier name來(lái)判斷,無(wú)SIM 時(shí)Carrier name還是會(huì)有的驻谆。
2. 飛行模式是否開(kāi)啟判斷:1. 首先判斷有沒(méi)插卡卵凑。2.插卡時(shí),根據(jù)serviceCurrentRadioAccessTechnology是否{}來(lái)判斷是否飛行模式胜臊。3. 沒(méi)插卡時(shí)勺卢,無(wú)法判斷(有沒(méi)判斷意義?)象对。
3. 飛行模式開(kāi)關(guān)黑忱、SIM拔插實(shí)時(shí)切換跟蹤:1.接收CTServiceRadioAccessTechnologyDidChangeNotification通知?2. 收到變更通知時(shí)再根據(jù)serviceCurrentRadioAccessTechnology是否為{}判斷是否飛行模式,根據(jù)serviceSubscriberCellularProviders判斷插卡勒魔。
代碼如下:
需要做飛行模式檢測(cè)的類(lèi):
踩過(guò)的坑:接收CTServiceRadioAccessTechnologyDidChangeNotification通知時(shí)甫煞,一定要持有CTTelephonyNetworkInfo實(shí)例,否則飛行模式的開(kāi)啟關(guān)閉通知可能接收不到冠绢。