BluetoothLEAdvertisementWatcher.Received 콜백이 반환되지 않음
먼저 결론
Package.appxmanifest
를 편집하여 블루투스 기능을 사용하도록 설정하십시오.
BluetoothLEAdvertisementWatcher
htps : // / cs. 미 c 로소 ft. 코 m/엔-우 s/우 wp/아피/우엔드 ws. 에서 ぃせ s. b ㅅ와 th. 아 dゔぇr 치세멘 t.ぅ 에토 th ぇ 아 d ご r 치세 멘토
이 클래스의 Received
의 이벤트에 콜백을 등록하면, 주변에서 광고중의 BLE 디바이스의 정보를 수시로 취득할 수 있습니다.
구현 예
var BleWatcher = new BluetoothLEAdvertisementWatcher
{
ScanningMode = BluetoothLEScanningMode.Active
};
BleWatcher.Received += async (w, btAdv) => {
var device = await BluetoothLEDevice.FromBluetoothAddressAsync(btAdv.BluetoothAddress);
Debug.WriteLine($"BLEWATCHER Found: {device.name}");
// SERVICES!!
var gatt = await device.GetGattServicesAsync();
Debug.WriteLine($"{device.Name} Services: {gatt.Services.Count}, {gatt.Status}, {gatt.ProtocolError}");
// CHARACTERISTICS!!
var characs = await gatt.Services.Single(s => s.Uuid == SAMPLESERVICEUUID).GetCharacteristicsAsync();
var charac = characs.Single(c => c.Uuid == SAMPLECHARACUUID);
await charac.WriteValueAsync(SOMEDATA);
};
BleWatcher.Start();
하지만
로그에 아무것도 나오지 않습니다. 여러가지 조사하면서 돌아다니며 공식 문서를 보면,
htps : // / cs. 미 c 로소 ft. 코 m / 자 jp / 우동 ws / 우 wp /
🤮
재챌린지
Visual Studio의 솔루션 탐색기에서
Package.appxmanifest
를 더블 클릭하여 편집합니다.
[기능]에서 Bluetooth를 선택합니다.
그러면 로그에 원하는 BLE 디바이스의 스캔 결과가 표시됩니다.
안드로이드의 Android.manifest
나 iOS의 info.plist
에도 BLE의 허가를 기재하는 설정 파일이 있습니다만, 이쪽은 개발(디버그)중은 미설정이라도 동작했을 것입니다만, Windows의 UWP 앱의 사양은 다르다 같아요.
아무것도 나오지 않기 때문에 BLE 디바이스 측에 문제가 있는지 등 여러가지 빠졌습니다.
뭔가 에러를 토해 주면 깨달았을 것입니다만, 공식의 문서는 제대로 보는 것이 좋다고 하는 이야기입니다. (개인의 블로그라면 당연한 것은 쓰지 않기 때문에)
참고
Why is BluetoothLEDevice.GattServices Empty
Windows 10에서 Bluetooth 지원 정보
Reference
이 문제에 관하여(BluetoothLEAdvertisementWatcher.Received 콜백이 반환되지 않음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/naninunenoy/items/ab64e78539b66cdae767
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
htps : // / cs. 미 c 로소 ft. 코 m/엔-우 s/우 wp/아피/우엔드 ws. 에서 ぃせ s. b ㅅ와 th. 아 dゔぇr 치세멘 t.ぅ 에토 th ぇ 아 d ご r 치세 멘토
이 클래스의
Received
의 이벤트에 콜백을 등록하면, 주변에서 광고중의 BLE 디바이스의 정보를 수시로 취득할 수 있습니다.구현 예
var BleWatcher = new BluetoothLEAdvertisementWatcher
{
ScanningMode = BluetoothLEScanningMode.Active
};
BleWatcher.Received += async (w, btAdv) => {
var device = await BluetoothLEDevice.FromBluetoothAddressAsync(btAdv.BluetoothAddress);
Debug.WriteLine($"BLEWATCHER Found: {device.name}");
// SERVICES!!
var gatt = await device.GetGattServicesAsync();
Debug.WriteLine($"{device.Name} Services: {gatt.Services.Count}, {gatt.Status}, {gatt.ProtocolError}");
// CHARACTERISTICS!!
var characs = await gatt.Services.Single(s => s.Uuid == SAMPLESERVICEUUID).GetCharacteristicsAsync();
var charac = characs.Single(c => c.Uuid == SAMPLECHARACUUID);
await charac.WriteValueAsync(SOMEDATA);
};
BleWatcher.Start();
하지만
로그에 아무것도 나오지 않습니다. 여러가지 조사하면서 돌아다니며 공식 문서를 보면,
htps : // / cs. 미 c 로소 ft. 코 m / 자 jp / 우동 ws / 우 wp /
🤮
재챌린지
Visual Studio의 솔루션 탐색기에서
Package.appxmanifest
를 더블 클릭하여 편집합니다.[기능]에서 Bluetooth를 선택합니다.
그러면 로그에 원하는 BLE 디바이스의 스캔 결과가 표시됩니다.
안드로이드의
Android.manifest
나 iOS의 info.plist
에도 BLE의 허가를 기재하는 설정 파일이 있습니다만, 이쪽은 개발(디버그)중은 미설정이라도 동작했을 것입니다만, Windows의 UWP 앱의 사양은 다르다 같아요.아무것도 나오지 않기 때문에 BLE 디바이스 측에 문제가 있는지 등 여러가지 빠졌습니다.
뭔가 에러를 토해 주면 깨달았을 것입니다만, 공식의 문서는 제대로 보는 것이 좋다고 하는 이야기입니다. (개인의 블로그라면 당연한 것은 쓰지 않기 때문에)
참고
Why is BluetoothLEDevice.GattServices Empty
Windows 10에서 Bluetooth 지원 정보
Reference
이 문제에 관하여(BluetoothLEAdvertisementWatcher.Received 콜백이 반환되지 않음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/naninunenoy/items/ab64e78539b66cdae767
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(BluetoothLEAdvertisementWatcher.Received 콜백이 반환되지 않음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/naninunenoy/items/ab64e78539b66cdae767텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)