- From: Giovanni Ortuno via GitHub <sysbot+gh@w3.org>
 - Date: Thu, 10 Nov 2016 06:06:38 +0000
 - To: public-web-bluetooth-log@w3.org
 
g-ortuno has just created a new issue for 
https://github.com/WebBluetoothCG/web-bluetooth:
== Scanning algorithm misses devices if there is a filter with no 
services. ==
Consider the following devices:
| Device Name | Advertised Services |
|--------|---------------------|
| D1     | A, B                |
| D2     | C                   |
And the following request:
```js
navigator.bluetooth.requestDevice({filters: [{services: 'A'}, 
{namePrefix: 'D2'}]});
```
For this request, Step 2 of [request Bluetooth 
devices](https://webbluetoothcg.github.io/web-bluetooth/#scan-for-devices)
 would result in `requiredServiceUUIDs` being `{'A'}` which is then 
used in step 7 as an argument for [scan for 
devices](https://webbluetoothcg.github.io/web-bluetooth/#scan-for-devices).
 In Step 6.2 of 
[scan for 
devices](https://webbluetoothcg.github.io/web-bluetooth/#scan-for-devices)
 a device is added if the intersection between the device's advertised
 services and the services passed to the algorithm is not empty. 
Because this intersection is empty for `D2` the device would not be 
added to the result.
We need to change the algorithm so that we don't pass 
`requiredServiceUUIDs` to [scan for 
devices](https://webbluetoothcg.github.io/web-bluetooth/#scan-for-devices)
 if there is a filter with no services.
Please view or discuss this issue at 
https://github.com/WebBluetoothCG/web-bluetooth/issues/334 using your 
GitHub account
Received on Thursday, 10 November 2016 06:06:44 UTC