UNPKG

rn-bluetooth-classic

Version:

A React Native Bluetooth provider using react-native-bluetooth-classic

126 lines (83 loc) 3.46 kB
--- # rn-native-bluetooth-classic `rn-bluetooth-classic` is a React Native package that provides a Bluetooth context and hooks for managing Bluetooth functionality in your app. It handles permissions, device scanning, connection management, and data reception. ## Installation You can install `rn-bluetooth-classic` via npm or yarn: ```bash npm install rn-bluetooth-classic ``` or ```bash yarn add rn-bluetooth-classic ``` ## Dependencies `rn-bluetooth-classic` uses `react-native-bluetooth-classic` under the hood to scan and connect to devices and only acts as a wrapper on top to make it easier to use. ```bash npm install react-native-bluetooth-classic ``` or ```bash yarn add react-native-bluetooth-classic ``` ## Usage ### 1. Import the `BluetoothProvider` and wrap your app with it in your root component: ```javascript import { BluetoothProvider } from 'rn-bluetooth-classic'; const App = () => { return ( <BluetoothProvider> <YourApp /> </BluetoothProvider> ); }; ``` ### 2. Use the `useBluetooth` hook in your components to access Bluetooth functionality: ```javascript import { useBluetooth } from 'rn-bluetooth-classic'; const YourComponent = () => { const { isScanning, devices, scanDevices, connectToDevice } = useBluetooth(); // Your component logic here... }; ``` ## Use with Expo If you are using Expo and want to integrate `rn-bluetooth-classic`, you can use the `with-rn-bluetooth-classic` Expo plugin maintained by amitferman. This plugin helps with auto-configuration of permissions and protocols. ### Expo Plugin amitferman has released and maintains a `with-rn-bluetooth-classic` Expo plugin to get things working. - [with-rn-bluetooth-classic GitHub Repository](https://github.com/amitferman/with-rn-bluetooth-classic) ### Expo Installation You can install `react-native-bluetooth-classic` and `with-rn-bluetooth-classic` from npm using Expo's `expo install` command: ```bash expo install react-native-bluetooth-classic with-rn-bluetooth-classic ``` ### Configure app.json or app.config.json After installation, configure your `app.json` or `app.config.json` with the following settings: ```json { "plugins": [ ["with-rn-bluetooth-classic", { "peripheralUsageDescription": "Allow myDevice to check bluetooth peripheral info", "alwaysUsageDescription": "Allow myDevice to always use bluetooth info", "protocols": [ "com.myCompany.p1", "com.myCompany.p2" ] } ] ] } ``` Make sure to replace `"com.myCompany.p1"` and `"com.myCompany.p2"` with your own protocol identifiers. ## Features - Request Bluetooth permissions - Scan for nearby Bluetooth devices - Connect to a Bluetooth device - Receive data from connected devices ## Example For a complete example of how to use `rn-bluetooth-classic`, check out the [example](example) directory in this repository. ## Contributing Contributions are welcome! Please open an issue or submit a pull request if you find any bugs or want to suggest improvements. ## License This package is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. --- Feel free to customize this template with additional information specific to your package. Make sure to replace placeholders like `YourApp` with actual names or values.