package com.codegy.aerlink.connection;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.util.Log;
import java.lang.reflect.Method;
import java.util.Set;
/**
* Created by Guiye on 25/8/16.
*/
public class BluetoothUtils {
private static final String LOG_TAG = BluetoothUtils.class.getSimpleName();
public static BluetoothDevice getBondedDevice(BluetoothAdapter bluetoothAdapter) {
BluetoothDevice bondedDevice = null;
if (bluetoothAdapter != null) {
try {
Set<BluetoothDevice> devices = bluetoothAdapter.getBondedDevices();
if (devices != null) {
for (BluetoothDevice device : devices) {
String deviceName = device.getName();
if (deviceName != null && (deviceName.equals("Aerlink") || deviceName.equals("BLE Utility") || deviceName.equals("Blank"))) {
bondedDevice = device;
break;
}
}
}
}
catch (Exception e) {
e.printStackTrace();
}
}
return bondedDevice;
}
public static void resetBondedDevices(BluetoothAdapter bluetoothAdapter) {
if (bluetoothAdapter != null) {
try {
Set<BluetoothDevice> devices = bluetoothAdapter.getBondedDevices();
if (devices != null) {
for (BluetoothDevice device : devices) {
String deviceName = device.getName();
if (deviceName != null && (deviceName.equals("Aerlink") || deviceName.equals("BLE Utility") || deviceName.equals("Blank"))) {
unpairDevice(device);
}
}
}
Log.d(LOG_TAG, "Bonded devices reset");
}
catch (Exception e) {
e.printStackTrace();
}
}
}
public static void unpairDevice(BluetoothDevice device) {
Log.d(LOG_TAG, device.getName() + ": Unpairing...");
try {
Method m = device.getClass().getMethod("removeBond", (Class[]) null);
m.invoke(device, (Object[]) null);
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void restartBluetooth(BluetoothAdapter bluetoothAdapter) {
try {
if (bluetoothAdapter != null) {
if (bluetoothAdapter.isEnabled()) {
bluetoothAdapter.disable();
}
bluetoothAdapter.enable();
Log.d(LOG_TAG, "Disabling bluetooth");
}
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void disableBluetooth(BluetoothAdapter bluetoothAdapter) {
try {
if (bluetoothAdapter != null && bluetoothAdapter.isEnabled()) {
bluetoothAdapter.disable();
Log.d(LOG_TAG, "Disabling bluetooth");
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}