2017-01-16 68 views
1

我需要在我的BLE連接上設置連接延遲,但文檔非常稀疏,請參閱setDesiredConnectionLatency上的Xamarin IOS setDesiredConnectionLatency

我使用的IOS的CoreBluetooth框架和documentation僅僅指的是實際的方法:

[Foundation.Export("setDesiredConnectionLatency:forCentral:")] 
    public virtual Void SetDesiredConnectionLatency (CBPeripheralManagerConnectionLatency latency, CBCentral connectedCentral) 

我看不出如何使用任何的例子,文檔或導遊,我已經試過如下:

var peripheralDelegate = new PeripheralManagerDelegate(); 
    //CBCentral central = new CBCentral(); 
    CBPeripheralManager peripheralManager = new CBPeripheralManager(peripheralDelegate, DispatchQueue.DefaultGlobalQueue); 
    peripheralManager.SetDesiredConnectionLatency(CBPeripheralManagerConnectionLatency.Low, central); 

我不知道如何獲取CBCentral實例,或者如何創建一個實例。

可有人請點我就如何可以使用SetDesiredConnectionLatencyCBCentral正確的方向

+0

你已經張貼返回404 – Demitrian

+0

固定文檔URL鏈接 – MariusB

回答

0

在雨燕3.0,你可以嘗試後設置的延遲因爲延遲已經建立的連接,屬於一個外設中心連接,不對外設本身(看看這個鏈接:https://developer.apple.com/reference/corebluetooth/cbperipheralmanager/1393277-setdesiredconnectionlatency

一種方法確保你已經有一個連接(但噸如果你在你的周圍到中央可以suscribe特性帽子只能)是在CBPeripheralManagerDelegate類實現didSubscribe回調:

public func peripheralManager(_ peripheral: CBPeripheralManager, central: CBCentral, didSubscribeTo characteristic: CBCharacteristic) { 
    peripheralManager?.setDesiredConnectionLatency(.low, for: central) 
}