MCPcopy Index your code
hub / github.com/douglasjunior/AndroidBluetoothLibrary

github.com/douglasjunior/AndroidBluetoothLibrary @0.4.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.4.0 ↗ · + Follow
213 symbols 463 edges 22 files 51 documented · 24% updated 1y ago0.4.0 · 2020-06-24★ 2334 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

AndroidBluetoothLibrary

Licence MIT Release Downloads Android Arsenal

A Library for easy implementation of Serial Bluetooth Classic and Low Energy on Android. 💙

  • Bluetooth Classic working from Android 2.1 (API 7)
  • Bluetooth Low Energy working from Android 4.3 (API 18)

Looking for React Native version? See also react-native-easybluetooth-classic and react-native-easybluetooth-le

Use

Configuration

Bluetooth Classic

BluetoothConfiguration config = new BluetoothConfiguration();
config.context = getApplicationContext();
config.bluetoothServiceClass = BluetoothClassicService.class;
config.bufferSize = 1024;
config.characterDelimiter = '\n';
config.deviceName = "Your App Name";
config.callListenersInMainThread = true;

config.uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); // Required

BluetoothService.init(config);

Bluetooth Low Energy

BluetoothConfiguration config = new BluetoothConfiguration();
config.context = getApplicationContext();
config.bluetoothServiceClass = BluetoothLeService.class;
config.bufferSize = 1024;
config.characterDelimiter = '\n';
config.deviceName = "Your App Name";
config.callListenersInMainThread = true;

config.uuidService = UUID.fromString("e7810a71-73ae-499d-8c15-faa9aef0c3f2"); // Required
config.uuidCharacteristic = UUID.fromString("bef8d6c9-9c21-4c9e-b632-bd58c1009f9f"); // Required
config.transport = BluetoothDevice.TRANSPORT_LE; // Required for dual-mode devices
config.uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); // Used to filter found devices. Set null to find all devices.

BluetoothService.init(config);

Getting BluetoothService

BluetoothService service = BluetoothService.getDefaultInstance();

Scanning

service.setOnScanCallback(new BluetoothService.OnBluetoothScanCallback() {
    @Override
    public void onDeviceDiscovered(BluetoothDevice device, int rssi) {
    }

    @Override
    public void onStartScan() {
    }

    @Override
    public void onStopScan() {
    }
});

service.startScan(); // See also service.stopScan();

Connecting

service.setOnEventCallback(new BluetoothService.OnBluetoothEventCallback() {
    @Override
    public void onDataRead(byte[] buffer, int length) {
    }

    @Override
    public void onStatusChange(BluetoothStatus status) {
    }

    @Override
    public void onDeviceName(String deviceName) {
    }

    @Override
    public void onToast(String message) {
    }

    @Override
    public void onDataWrite(byte[] buffer) {
    }
});

service.connect(device); // See also service.disconnect();

Writing

BluetoothWriter writer = new BluetoothWriter(service);

writer.writeln("Your text here");

Complete example

See the sample project.

Download

  1. Add it in your root build.gradle at the end of repositories: javascript allprojects { repositories { ... maven { url "https://jitpack.io" } } }

  2. Add the dependency

2.1. Bluetooth Classic javascript dependencies { implementation 'com.github.douglasjunior.AndroidBluetoothLibrary:BluetoothClassicLibrary:0.3.5' }

2.2. Bluetooth Low Energy javascript dependencies { implementation 'com.github.douglasjunior.AndroidBluetoothLibrary:BluetoothLowEnergyLibrary:0.3.5' }

  1. Add permission in AndroidManifest.xml
<manifest ...>
  <uses-permission android:name="android.permission.BLUETOOTH" />
  <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
  <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  ...
</manifest>

Known issues

  • Location needs to be enabled for Bluetooth Low Energy Scanning on Android 6.0 http://stackoverflow.com/a/33045489/2826279

Contribute

New features, bug fixes and improvements are welcome! For questions and suggestions use the issues.

Before submit your PR, run the gradle check.

./gradlew build connectedCheck

Become a Patron! Donate

Licence

The MIT License (MIT)

Copyright (c) 2015 Douglas Nassif Roma Junior

See the full licence file.

Extension points exported contracts — how you extend this code

OnBluetoothEventCallback (Interface)
(no doc) [4 implementers]
BluetoothClassicLibrary/src/main/java/com/github/douglasjunior/bluetoothclassiclibrary/BluetoothService.java
OnAdapterItemClickListener (Interface)
(no doc) [2 implementers]
SampleKotlin/src/main/java/com/github/douglasjunior/bluetoothsamplekotlin/DeviceItemAdapter.java
OnAdapterItemClickListener (Interface)
(no doc) [2 implementers]
Sample/src/main/java/com/github/douglasjunior/bluetoothsample/DeviceItemAdapter.java
OnBluetoothScanCallback (Interface)
(no doc) [2 implementers]
BluetoothClassicLibrary/src/main/java/com/github/douglasjunior/bluetoothclassiclibrary/BluetoothService.java

Core symbols most depended-on inside this repo

runOnMainThread
called by 17
BluetoothClassicLibrary/src/main/java/com/github/douglasjunior/bluetoothclassiclibrary/BluetoothService.java
write
called by 15
BluetoothClassicLibrary/src/main/java/com/github/douglasjunior/bluetoothclassiclibrary/BluetoothWriter.java
getName
called by 9
BluetoothClassicLibrary/src/main/java/com/github/douglasjunior/bluetoothclassiclibrary/BluetoothDeviceDecorator.java
updateState
called by 8
BluetoothClassicLibrary/src/main/java/com/github/douglasjunior/bluetoothclassiclibrary/BluetoothService.java
setOnEventCallback
called by 6
BluetoothClassicLibrary/src/main/java/com/github/douglasjunior/bluetoothclassiclibrary/BluetoothService.java
getDefaultInstance
called by 6
BluetoothClassicLibrary/src/main/java/com/github/douglasjunior/bluetoothclassiclibrary/BluetoothService.java
getDevices
called by 5
Sample/src/main/java/com/github/douglasjunior/bluetoothsample/DeviceItemAdapter.java
getAddress
called by 4
BluetoothClassicLibrary/src/main/java/com/github/douglasjunior/bluetoothclassiclibrary/BluetoothDeviceDecorator.java

Shape

Method 183
Class 25
Interface 4
Enum 1

Languages

Java92%
Kotlin8%

Modules by API surface

BluetoothClassicLibrary/src/main/java/com/github/douglasjunior/bluetoothclassiclibrary/BluetoothService.java30 symbols
BluetoothLowEnergyLibrary/src/main/java/com/github/douglasjunior/bluetoothlowenergylibrary/BluetoothLeService.java27 symbols
BluetoothClassicLibrary/src/main/java/com/github/douglasjunior/bluetoothclassiclibrary/BluetoothClassicService.java24 symbols
Sample/src/main/java/com/github/douglasjunior/bluetoothsample/MainActivity.java16 symbols
SampleKotlin/src/main/java/com/github/douglasjunior/bluetoothsamplekotlin/MainActivity.kt15 symbols
SampleKotlin/src/main/java/com/github/douglasjunior/bluetoothsamplekotlin/DeviceItemAdapter.java13 symbols
Sample/src/main/java/com/github/douglasjunior/bluetoothsample/DeviceItemAdapter.java13 symbols
SampleKotlin/src/main/java/com/github/douglasjunior/bluetoothsamplekotlin/DeviceActivity.java10 symbols
Sample/src/main/java/com/github/douglasjunior/bluetoothsample/DeviceActivity.java10 symbols
BluetoothClassicLibrary/src/main/java/com/github/douglasjunior/bluetoothclassiclibrary/BluetoothDeviceDecorator.java10 symbols
BluetoothClassicLibrary/src/main/java/com/github/douglasjunior/bluetoothclassiclibrary/BluetoothDeviceDecoratorNull.java7 symbols
SampleKotlin/src/main/java/com/github/douglasjunior/bluetoothsamplekotlin/EscPosHelper.java5 symbols

For agents

$ claude mcp add AndroidBluetoothLibrary \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page