diff options
author | xC3FFF0E <78732474+xC3FFF0E@users.noreply.github.com> | 2021-02-11 18:45:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-11 18:45:24 +0100 |
commit | b83690504e62adf997ba329e82f7712ace58cd7d (patch) | |
tree | dcf366e63b6a93669733742a29efbfb386a26f4d /app/src/main/java/com/xc3fff0e/xmanager/BluetoothConnect.java | |
parent | Delete SketchwareUtil.java (diff) | |
download | xManager-b83690504e62adf997ba329e82f7712ace58cd7d.tar xManager-b83690504e62adf997ba329e82f7712ace58cd7d.tar.gz xManager-b83690504e62adf997ba329e82f7712ace58cd7d.tar.bz2 xManager-b83690504e62adf997ba329e82f7712ace58cd7d.tar.lz xManager-b83690504e62adf997ba329e82f7712ace58cd7d.tar.xz xManager-b83690504e62adf997ba329e82f7712ace58cd7d.tar.zst xManager-b83690504e62adf997ba329e82f7712ace58cd7d.zip |
Diffstat (limited to 'app/src/main/java/com/xc3fff0e/xmanager/BluetoothConnect.java')
-rw-r--r-- | app/src/main/java/com/xc3fff0e/xmanager/BluetoothConnect.java | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/app/src/main/java/com/xc3fff0e/xmanager/BluetoothConnect.java b/app/src/main/java/com/xc3fff0e/xmanager/BluetoothConnect.java new file mode 100644 index 0000000..3fdea27 --- /dev/null +++ b/app/src/main/java/com/xc3fff0e/xmanager/BluetoothConnect.java @@ -0,0 +1,111 @@ +package com.xc3fff0e.xmanager;
+ +import android.app.Activity; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.content.Intent; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Set; +import java.util.UUID; + +public class BluetoothConnect { +private static final String DEFAULT_UUID = "00001101-0000-1000-8000-00805F9B34FB"; + +private Activity activity; + +private BluetoothAdapter bluetoothAdapter; + +public BluetoothConnect(Activity activity) { +this.activity = activity; +this.bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); +} + +public boolean isBluetoothEnabled() { +if(bluetoothAdapter != null) return true; + +return false; +} + +public boolean isBluetoothActivated() { +if(bluetoothAdapter == null) return false; + +return bluetoothAdapter.isEnabled(); +} + +public void activateBluetooth() { +Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); +activity.startActivity(intent); +} + +public String getRandomUUID() { +return String.valueOf(UUID.randomUUID()); +} + +public void getPairedDevices(ArrayList<HashMap<String, Object>> results) { +Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices(); + +if(pairedDevices.size() > 0) { +for(BluetoothDevice device : pairedDevices) { +HashMap<String, Object> result = new HashMap<>(); +result.put("name", device.getName()); +result.put("address", device.getAddress()); + +results.add(result); +} +} +} + +public void readyConnection(BluetoothConnectionListener listener, String tag) { +if(BluetoothController.getInstance().getState().equals(BluetoothController.STATE_NONE)) { +BluetoothController.getInstance().start(this, listener, tag, UUID.fromString(DEFAULT_UUID), bluetoothAdapter); +} +} + +public void readyConnection(BluetoothConnectionListener listener, String uuid, String tag) { +if(BluetoothController.getInstance().getState().equals(BluetoothController.STATE_NONE)) { +BluetoothController.getInstance().start(this, listener, tag, UUID.fromString(uuid), bluetoothAdapter); +} +} + + +public void startConnection(BluetoothConnectionListener listener, String address, String tag) { +BluetoothDevice device = bluetoothAdapter.getRemoteDevice(address); + +BluetoothController.getInstance().connect(device, this, listener, tag, UUID.fromString(DEFAULT_UUID), bluetoothAdapter); +} + +public void startConnection(BluetoothConnectionListener listener, String uuid, String address, String tag) { +BluetoothDevice device = bluetoothAdapter.getRemoteDevice(address); + +BluetoothController.getInstance().connect(device, this, listener, tag, UUID.fromString(uuid), bluetoothAdapter); +} + +public void stopConnection(BluetoothConnectionListener listener, String tag) { +BluetoothController.getInstance().stop(this, listener, tag); +} + +public void sendData(BluetoothConnectionListener listener, String data, String tag) { +String state = BluetoothController.getInstance().getState(); + +if(!state.equals(BluetoothController.STATE_CONNECTED)) { +listener.onConnectionError(tag, state, "Bluetooth is not connected yet"); +return; +} + +BluetoothController.getInstance().write(data.getBytes()); +} + +public Activity getActivity() { +return activity; +} + +public interface BluetoothConnectionListener { +void onConnected(String tag, HashMap<String, Object> deviceData); +void onDataReceived(String tag, byte[] data, int bytes); +void onDataSent(String tag, byte[] data); +void onConnectionError(String tag, String connectionState, String message); +void onConnectionStopped(String tag); +} +}
\ No newline at end of file |