private async Task WaitForState(CBCentralManagerState state) { while (_central.State != state) { await Task.Run(() => _stateChanged.WaitOne()); } }
public static BluetoothState ToBluetoothState(this CBCentralManagerState state) { switch (state) { case CBCentralManagerState.Unknown: return(BluetoothState.Unknown); case CBCentralManagerState.Resetting: return(BluetoothState.Unknown); case CBCentralManagerState.Unsupported: return(BluetoothState.Unavailable); case CBCentralManagerState.Unauthorized: return(BluetoothState.Unauthorized); case CBCentralManagerState.PoweredOff: return(BluetoothState.Off); case CBCentralManagerState.PoweredOn: return(BluetoothState.On); default: return(BluetoothState.Unknown); } }
private async void StateChanged(object sender, CBCentralManagerState state) { if (!this.alreadyScanned && state == CBCentralManagerState.PoweredOn) { try { this.alreadyScanned = true; var connectedDevice = this.bluetoothService.GetConnectedDevices("180A") ?.FirstOrDefault(x => x.Name.StartsWith(DeviceName, StringComparison.InvariantCulture)); if (connectedDevice != null) { this.DiscoveredDevice(this, connectedDevice); } else { await this.bluetoothService.Scan(ScanTime); } } catch (Exception ex) { Debug.WriteLine(ex); } } }
private async Task WaitForState(CBCentralManagerState state) { Debug.WriteLine("Adapter: Waiting for state: " + state); while (_central.State != state) { await Task.Run(() => stateChanged.WaitOne()); } }
public BeahatImplementation() { _beaconEventHolderDict = new Dictionary <string, iBeaconEventHolder>(); _detectedBeaconDictFromClosestApproachedInfo = new Dictionary <string, iBeacon>(); _detectedBeaconDictFromLastApproachedInfo = new Dictionary <string, iBeacon>(); _locationManager = new CLLocationManager(); _locationAvailabilityChecker = new CLLocationManager(); _canUseLocation = true; _bluetoothAvailabilityChecker = new CBCentralManager(); _bluetoothAvailability = CBCentralManagerState.Unknown; _locationManager.DidRangeBeacons += didRangeBeacons; _locationAvailabilityChecker.RangingBeaconsDidFailForRegion += (s, e) => { switch (e.Error.Code) { case (long)CLError.Denied: case (long)CLError.RangingFailure: _canUseLocation = false; return; default: return; } }; _locationAvailabilityChecker.AuthorizationChanged += (s, e) => { switch (e.Status) { case CLAuthorizationStatus.AuthorizedAlways: case CLAuthorizationStatus.AuthorizedWhenInUse: // 位置情報の取得が常時許可されている // 位置情報の取得がアプリ使用時のみ許可されている _canUseLocation = true; return; case CLAuthorizationStatus.NotDetermined: case CLAuthorizationStatus.Denied: case CLAuthorizationStatus.Restricted: // 位置情報の使用許可に関して、まだ選択がされていない // 位置情報サービスが無効にされている // 位置情報サービスを利用できない _canUseLocation = false; return; default: return; } }; _bluetoothAvailabilityChecker.UpdatedState += (s, e) => { _bluetoothAvailability = ((CBCentralManager)s).State; }; }
private async Task WaitForState(CBCentralManagerState state, CancellationToken cancellationToken, bool configureAwait = false) { Trace.Message("Adapter: Waiting for state: " + state); while (_centralManager.State != state && !cancellationToken.IsCancellationRequested) { await Task.Run(() => _stateChanged.WaitOne(2000), cancellationToken).ConfigureAwait(configureAwait); } }
public iBeaconEventTriggerService() { _beaconEventHolderDict = new Dictionary <string, iBeaconEventHolder>(); _detectedBeaconDict = new Dictionary <string, iBeacon>(); _locationManager = new CLLocationManager(); _locationAvailabilityChecker = new CLLocationManager(); _canUseLocation = true; _bluetoothAvailabilityChecker = new CBCentralManager(); _bluetoothAvailability = CBCentralManagerState.Unknown; _locationManager.DidRangeBeacons += didRangeBeacons; _locationAvailabilityChecker.RangingBeaconsDidFailForRegion += (s, e) => { switch (e.Error.Code) { case (long)CLError.Denied: case (long)CLError.RangingFailure: _canUseLocation = false; return; default: return; } }; _locationAvailabilityChecker.AuthorizationChanged += (s, e) => { switch (e.Status) { case CLAuthorizationStatus.AuthorizedAlways: case CLAuthorizationStatus.AuthorizedWhenInUse: _canUseLocation = true; return; case CLAuthorizationStatus.Denied: _canUseLocation = false; return; default: return; } }; _bluetoothAvailabilityChecker.UpdatedState += (s, e) => { _bluetoothAvailability = ((CBCentralManager)s).State; }; }
private static RadioState CBCentalManagerStateToRadioState(CBCentralManagerState state) { switch (state) { case CBCentralManagerState.PoweredOn: return(RadioState.On); case CBCentralManagerState.PoweredOff: return(RadioState.Off); case CBCentralManagerState.Unauthorized: return(RadioState.Disabled); default: return(RadioState.Unknown); } }
public BtError checkBtSupport() { CBCentralManagerState error = centralManager.State; switch (error) { case CBCentralManagerState.PoweredOn: return(BtError.None); case CBCentralManagerState.PoweredOff: return(BtError.Disabled); case CBCentralManagerState.Unsupported: return(BtError.NoBluetooth); default: return(BtError.Unknown); } }
public static AccessState FromNative(this CBCentralManagerState state) { switch (state) { case CBCentralManagerState.PoweredOff: return(AccessState.Disabled); case CBCentralManagerState.Resetting: case CBCentralManagerState.PoweredOn: return(AccessState.Available); case CBCentralManagerState.Unauthorized: return(AccessState.Denied); case CBCentralManagerState.Unsupported: return(AccessState.NotSupported); case CBCentralManagerState.Unknown: default: return(AccessState.Unknown); } }
public void CheckBluetoothAccess() { if (cbManager == null) { cbManager = new CBCentralManager(); } CBCentralManagerState state = cbManager.State; switch (state) { case CBCentralManagerState.Unknown: ShowAlert(DataClass.Bluetooth, "unknown"); break; case CBCentralManagerState.Unauthorized: ShowAlert(DataClass.Bluetooth, "denied"); break; default: ShowAlert(DataClass.Bluetooth, "granted"); break; } }
public static BLEAdapterState ToShared(this CBCentralManagerState state) => (BLEAdapterState)state;
public static AccessState FromNative(this CBCentralManagerState state) => state switch {
public BLECBCentralManagerStateEventArgs(CBCentralManagerState oldState, CBCentralManagerState newState) { OldState = oldState; NewState = newState; }
async Task WaitForState (CBCentralManagerState state) { Debug.WriteLine ("Adapter: Waiting for state: " + state); while (_central.State != state) { await Task.Run (() => stateChanged.WaitOne ()); } }
private async Task WaitForState(CBCentralManagerState state, CancellationToken cancellationToken) { Mvx.Trace("Adapter: Waiting for state: " + state); while (_central.State != state && !cancellationToken.IsCancellationRequested) { await Task.Run(() => _stateChanged.WaitOne(2000), cancellationToken).ConfigureAwait(false); } }
string CheckBluetoothAccess() { CBCentralManagerState state = cbManager.State; return(state.ToString()); }
public override void BluetoothRoximityUsable(bool usable, CBCentralManagerState state) { }