iOS12 ANCS連接問題(用Android 9.0設備進行配對測試)

因爲iOS系統默認不會爲自帶的ANCS服務發送廣播, 而且使用ANCS的通知訂閱功能必須進行配對. 因此咱們須要在ios上寫本身的代碼,讓目標設備和iOS進行配對. 配對完成後,監聽設備和iOS均可以隨意關閉藍牙. 再次打開藍牙後,只須要監聽設備根據地址再次發起連接,就能夠連接iOS的GATTserver, 以後就能夠監聽iOS的ANCS的通知了,不須要從新配對,對於iOS用戶來講,是透明的.android

完成配對的方式有2種,下面用android模擬了監聽設備分別作了實驗:ios

1.目標設備做爲Central ,iOS做爲Peripheral
用iOS模擬一個外圍設備,Android根據設備名搜索到iOS,併發出createBond請求,開始配對.併發

2.目標設備做爲Peripheral, iOS做爲Central
Peripheral上須要設置BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED 權限,讓ios在讀取Peripheral上的某個特徵值時,觸發系統層的自動配對機制, 完成配對(由於在ios上,沒有像android那樣提供createBond函數,iOS會根據Peripheral的屬性權限自動彈出配對對話框).函數

這裏遇到一個奇怪的問題. 配對後,若是在iOS上使用LightBlue程序模擬一個外圍設備,會致使android沒法對ANCS進行寫操做. 解決方法是,強制關閉lightblue程序,再關閉藍牙,開啓藍牙. 可是我模擬的Peripheral不會對ancs形成影響, 不知道lightblue模擬時,採起了什麼動做.等待調查.server

下面這個問題也是我遇到的,目前沒有找到緣由和解決辦法:
https://stackoverflow.com/questions/47806804/not-receiving-ios-ancs-notifications-on-androidip

相關文章
相關標籤/搜索