BlueZ in ChromeOS supports manufacturer data / advertising flags now. We should also support this on other platforms.
More context: - Android and macOS APIs provide Manufacturer data and Advertising Flags for each advertisement received. Android[1], macOS[2]. - BluetoothDevice has manufacturer_data_ and advertising_flags_. What needs to be done: Propagate this data from where it is received[3][4] up to UpdateAdvertisementData[5][6] Change UpdateAdvertisementData to set this data [7]. Add tests[8] to make sure the data is updated correctly. [1] https://developer.android.com/reference/android/bluetooth/le/ScanRecord.html#getManufacturerSpecificData() [2] https://developer.apple.com/reference/corebluetooth/cbcentralmanagerdelegate/1667457-advertisement_data_retrieval_key [3] https://cs.chromium.org/chromium/src/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java?dr=CSs&l=241 [5] https://cs.chromium.org/chromium/src/device/bluetooth/bluetooth_adapter_mac.mm?q=f:bluetooth_adapter_mac&sq=package:chromium&dr&l=512 [4] https://cs.chromium.org/chromium/src/device/bluetooth/bluetooth_adapter_android.cc?l=214 [6] https://cs.chromium.org/chromium/src/device/bluetooth/bluetooth_adapter_mac.mm?sq=package:chromium&dr&l=561 [7] https://cs.chromium.org/chromium/src/device/bluetooth/bluetooth_device.cc?l=420 [8] https://cs.chromium.org/chromium/src/device/bluetooth/bluetooth_device_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5ad46357e9fda1bfe257cac65ae78d65c10643c7 commit 5ad46357e9fda1bfe257cac65ae78d65c10643c7 Author: Lukasz Pobereznik <lukasz.pobereznik@estimote.com> Date: Tue Dec 19 01:19:36 2017 bluetooth: Add missing service data and manufacturer data This change adds service data and manufacturer data to BluetoothDevice when scanning. On Android both fields were not updated. On Mac only manufacturer data were missing. Bug: 639408 , 661814 Change-Id: I54755303f9e4df5907f55e72b69dc9e803341d08 Reviewed-on: https://chromium-review.googlesource.com/817195 Commit-Queue: Kyle Horimoto <khorimoto@chromium.org> Reviewed-by: agrieve <agrieve@chromium.org> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Reviewed-by: Vincent Scheib <scheib@chromium.org> Cr-Commit-Position: refs/heads/master@{#524893} [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/AUTHORS [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/components/proximity_auth/bluetooth_low_energy_connection_finder_unittest.cc [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/device/bluetooth/android/java/src/org/chromium/device/bluetooth/ChromeBluetoothAdapter.java [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/device/bluetooth/android/java/src/org/chromium/device/bluetooth/Wrappers.java [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/device/bluetooth/bluetooth_adapter_android.cc [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/device/bluetooth/bluetooth_adapter_android.h [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/device/bluetooth/bluetooth_adapter_mac.mm [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/device/bluetooth/bluetooth_device.cc [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/device/bluetooth/bluetooth_device.h [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/device/bluetooth/bluetooth_device_unittest.cc [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/device/bluetooth/dbus/fake_bluetooth_device_client.cc [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/device/bluetooth/dbus/fake_bluetooth_device_client.h [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/device/bluetooth/test/android/java/src/org/chromium/device/bluetooth/Fakes.java [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/device/bluetooth/test/bluetooth_test.cc [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/device/bluetooth/test/bluetooth_test.h [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/device/bluetooth/test/bluetooth_test_bluez.cc [modify] https://crrev.com/5ad46357e9fda1bfe257cac65ae78d65c10643c7/device/bluetooth/test/bluetooth_test_mac.mm
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c75765a755d7309f66fdc633df4422da1b5701dd commit c75765a755d7309f66fdc633df4422da1b5701dd Author: Jan Wilken Doerrie <jdoerrie@chromium.org> Date: Fri Jul 20 11:36:18 2018 [bluetooth] WinRT: Extract remaining Advertising Data This change implements extracting remaining Advertising Data for WinRT. This includes the following data: - Advertising Data Flags - Tx Power - Service Data - Manufacturer Data For tx power and Service Data Windows does not provide specialized platform APIs and the raw advertising data sections need to be parsed. Bug: 821766 , 661814 Change-Id: Ic5f60ce5ee866c4ac130084f9b404f038d5e0886 Reviewed-on: https://chromium-review.googlesource.com/1103574 Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org> Reviewed-by: Reilly Grant <reillyg@chromium.org> Reviewed-by: Giovanni Ortuño Urquidi <ortuno@chromium.org> Cr-Commit-Position: refs/heads/master@{#576829} [modify] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/BUILD.gn [modify] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/bluetooth_adapter_winrt.cc [modify] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/bluetooth_device.h [modify] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/bluetooth_device_unittest.cc [modify] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/bluetooth_device_winrt.h [modify] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/test/bluetooth_test.cc [modify] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/test/bluetooth_test.h [modify] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/test/bluetooth_test_win.cc [add] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/test/fake_bluetooth_le_advertisement_data_section_winrt.cc [add] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/test/fake_bluetooth_le_advertisement_data_section_winrt.h [modify] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/test/fake_bluetooth_le_advertisement_received_event_args_winrt.cc [modify] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/test/fake_bluetooth_le_advertisement_received_event_args_winrt.h [modify] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/test/fake_bluetooth_le_advertisement_watcher_winrt.cc [modify] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/test/fake_bluetooth_le_advertisement_watcher_winrt.h [modify] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/test/fake_bluetooth_le_advertisement_winrt.cc [modify] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/test/fake_bluetooth_le_advertisement_winrt.h [add] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/test/fake_bluetooth_le_manufacturer_data_winrt.cc [add] https://crrev.com/c75765a755d7309f66fdc633df4422da1b5701dd/device/bluetooth/test/fake_bluetooth_le_manufacturer_data_winrt.h
Comment 1 by ortuno@chromium.org
, Nov 2 2016Status: Available (was: Untriaged)