Android Bluetooth Library

Additional

Language
Java
Version
0.3.5 (Mar 7, 2018)
Created
Mar 27, 2015
Updated
Mar 30, 2018
Owner
Douglas Nassif Roma Junior (douglasjunior)
Contributors
Douglas Nassif Roma Junior (douglasjunior)
johnhowe
2
Activity
Badge
Generate
Download
Source code
APK file

Advertisement

AndroidBluetoothLibrary

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

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

// Bluetooth Classic
config.uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); // Set null to find all devices on scan.

// Bluetooth LE
config.uuidService = UUID.fromString("e7810a71-73ae-499d-8c15-faa9aef0c3f2"); 
config.uuidCharacteristic = UUID.fromString("bef8d6c9-9c21-4c9e-b632-bd58c1009f9f"); 
config.transport = BluetoothDevice.TRANSPORT_LE; // Only for dual-mode 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:

    allprojects {
      repositories {
        ...
        maven { url "https://jitpack.io" }
      }
    }
  2. Add the dependency

    2.1. Bluetooth Classic

    dependencies {
      compile 'com.github.douglasjunior.AndroidBluetoothLibrary:BluetoothClassicLibrary:0.3.5'
    }

    2.2. Bluetooth Low Energy

    dependencies {
      compile 'com.github.douglasjunior.AndroidBluetoothLibrary:BluetoothLowEnergyLibrary:0.3.5'
    }
  3. 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

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

Licence

The MIT License (MIT)

Copyright (c) 2015 Douglas Nassif Roma Junior

See the full licence file.