*** Reason for rollback *** Although this fixes Bluetooth Classic, it appears to break Ble, will resubmit once Ble is fixed. *** Original change description *** BEGIN_PUBLIC Bug fixes for 233012255 and 232995024 Refactor bluetooth_adapter setname and getname to remove logic errors, array overruns, and leaking memory. Refactor bluetooth discovery callbacks to prevent getting updates before we have cached the device found. Refactor the dart code interfaces to more closely align between the dll and the dart UI, and move from using the device name (which can be easily duplicated) as the primary key to using endpoint_id as the primary key for all calls into... *** PiperOrigin-RevId: 452177878
Nearby C++ Library
The repository contains the Nearby project C++ library source code. This is not an officially supported Google product.
About the Nearby Project
Nearby Connection
Nearby Connections is a high level protocol on top of Bluetooth/WiFi that acts as a medium-agnostic socket. Devices are able to advertise, scan, and connect with one another over any shared medium (eg. BT <-> BT). Once connected, the two devices share a list of all supported mediums and attempt to upgrade to the one with the highest bandwidth (eg. BT -> WiFi). The connection is encrypted, reliable, and fully duplex. BYTE, FILE, and STREAM payloads are all supported and will be chunked & transferred internally and recombined on the receiving device. See Nearby Connections Overview for more information.
Checkout the source tree
git clone https://github.com/google/nearby
cd nearby
git submodule update --init --recursive
Building Nearby, Unit Testing and Sample Apps
We support multiple platforms including Linux, iOS & Windows.
Building for Linux
Currently we support building from source using [bazel] (https://bazel.build). Other BUILD system such as cmake may be added later.
Prerequisites:
- Bazel
- clang with support for c++ 17+
- Openssl libcrypto.so (-lssl;-lcrypto).
To build the Nearby Connection Core library:
CC=clang CXX=clang++ bazel build -s --check_visibility=false //connections:core --spawn_strategy=standalone --verbose_failures
Building for macOS and iOS
Currently we support building with Swift Package Manager.
Prerequisites:
- Xcode. Available from Apple Store.
- Google Protobuf Compiler (protoc). If you have homebrew installed, you can do
brew install protobuf.
To build the Nearby Connection library:
swift build
We also provide a iOS [sample app using the Nearby Connections library] (https://github.com/google/nearby/blob/master/internal/platform/implementation/ios/Example/NearbyConnectionsExample/README.md).
Limitation
The only Medium supported is Wifi LAN.
Last Updated: April 7, 2022