Bluetoothデバイスからの切断を完了し、didDisconnectPeripheralデリゲートで切断されたことを確認したら、viewcontrollerを閉じようとします。
これが発生すると、「[CoreBlueooth] XPC Connection Invalid」というメッセージが表示されます
ViewControllerを終了する前に、Bluetoothでクリーンアップする必要がある特定のものはありますか?
CBCentralManager
をシングルトンに配置すると、エラーメッセージが解決されます。
(CBCentralManager
は割り当て解除されません)
次のメッセージが表示されました。
[CoreBlueooth] XPC接続が無効です
そして、次の非常に簡単な実装を使用してBLEデバイスをスキャンできませんでした。
NSObject<CBCentralManagerDelegate, CBPeripheralDelegate>
私の解決策は、Privacy-Bluetooth Peripheral Usage DescriptionNSBluetoothPeripheralUsageDescription
のBluetooth Peripheralでの処理を説明するInfo.plist
に値を追加することでした。
info.plist
では次のようになります。
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Play with BLE Compatible devices<string>
もっと正確なことをここに書いてください;)
CBCentralManager参照は、メンバー変数としてのクラスへの強い参照である必要があります。ローカル参照として機能することはできません。
これを試して:
CBPeripheral *mConnectedPeripheral;
-(void)viewDidDisappear:(BOOL)animated{
[_centralManager cancelPeripheralConnection:mConnectedPeripheral];
}
私の場合、機能からアプリサンドボックスをオフにしました。
わかりました、私はその問題に出くわし、Info.plistに必要なキーを追加しようとした後、それはまだ機能し、この時点で使用するビューがありませんでした(AppDelegateにありました)。それでもうまくいかない場合は、以下を試してください。
以前使用していたもの:(Swift)
_ = BluetoothMngr.init(config: bleConfig)
ここでの問題は、Bluetoothを管理する変数が保持されないため、BLEコールバックを追加すると、これらが空のクラスになってしまうため、保持する場所にグローバル変数を作成するだけです(これがシングルトンで動作し、これらを表示する理由です保持されます)このように。
self.bleMngr = BluetoothMngr.init(config: bleConfig)
私のために働いて、それが役立つことを願っています。