網(wǎng)絡(luò)-通訊

CoreTelephony Framework

1. CTTelephonyNetworkInfo:提供手機(jī)注冊的運(yùn)營商信息、當(dāng)前接入的無線通訊技術(shù)、切換運(yùn)營商(切換SIM卡)通知、當(dāng)前無線接入技術(shù)變更通知。

由于蘋果手機(jī)也支持了雙卡雙待,所以新API從iOS12開始支持。

以下是在不同情況下對部分api的測試。

API測試

實(shí)用場景:

? 1. 判斷手機(jī)有沒插卡:通過serviceSubscriberCellularProviders判斷:遍歷每個(gè)value,若每個(gè)CTCarrier的ISO Country Code都為nil則沒插卡,不可以Carrier name來判斷,無SIM 時(shí)Carrier name還是會有的。

2. 飛行模式是否開啟判斷:1. 首先判斷有沒插卡。2.插卡時(shí),根據(jù)serviceCurrentRadioAccessTechnology是否{}來判斷是否飛行模式。3. 沒插卡時(shí),無法判斷(有沒判斷意義?)。

3. 飛行模式開關(guān)、SIM拔插實(shí)時(shí)切換跟蹤:1.接收CTServiceRadioAccessTechnologyDidChangeNotification通知?2. 收到變更通知時(shí)再根據(jù)serviceCurrentRadioAccessTechnology是否為{}判斷是否飛行模式,根據(jù)serviceSubscriberCellularProviders判斷插卡。

代碼如下:

飛行模式判斷(可以寫在工具類里)

需要做飛行模式檢測的類:

示例的使用代碼

踩過的坑:接收CTServiceRadioAccessTechnologyDidChangeNotification通知時(shí),一定要持有CTTelephonyNetworkInfo實(shí)例,否則飛行模式的開啟關(guān)閉通知可能接收不到。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容