summaryrefslogtreecommitdiff
path: root/app/src/main/java/com/javispedro/autobluetether/BtPanWrapper.java
diff options
context:
space:
mode:
authorJavier <dev.git@javispedro.com>2020-07-26 18:11:10 +0200
committerJavier <dev.git@javispedro.com>2021-03-21 01:53:33 +0100
commit0119e703ff4a8f3201610c2866702f7f92da0b26 (patch)
tree29e9b48c7850024bfa5270b661dfe2899a82affe /app/src/main/java/com/javispedro/autobluetether/BtPanWrapper.java
downloadautobluetether-0119e703ff4a8f3201610c2866702f7f92da0b26.tar.gz
autobluetether-0119e703ff4a8f3201610c2866702f7f92da0b26.zip
initial import
Diffstat (limited to 'app/src/main/java/com/javispedro/autobluetether/BtPanWrapper.java')
-rw-r--r--app/src/main/java/com/javispedro/autobluetether/BtPanWrapper.java39
1 files changed, 39 insertions, 0 deletions
diff --git a/app/src/main/java/com/javispedro/autobluetether/BtPanWrapper.java b/app/src/main/java/com/javispedro/autobluetether/BtPanWrapper.java
new file mode 100644
index 0000000..40cd84a
--- /dev/null
+++ b/app/src/main/java/com/javispedro/autobluetether/BtPanWrapper.java
@@ -0,0 +1,39 @@
+package com.javispedro.autobluetether;
+
+import android.bluetooth.BluetoothProfile;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+public class BtPanWrapper {
+ private static final String CLASS_NAME = "android.bluetooth.BluetoothPan";
+ public static final int PROFILE_ID = 5 /*BluetoothProfile.PAN*/;
+ private final BluetoothProfile p;
+
+ public BtPanWrapper(BluetoothProfile pan) {
+ p = pan;
+ }
+
+ private Object invoke(String methodName, Class[] parameterTypes, Object[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, ClassNotFoundException {
+ Class c = Class.forName(CLASS_NAME);
+ Method m = c.getDeclaredMethod(methodName, parameterTypes);
+ return m.invoke(this.p, args);
+ }
+
+ public boolean isTetheringOn() {
+ try {
+ return (boolean) invoke("isTetheringOn", null, null);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public void setBluetoothTethering(boolean on) {
+ try {
+ invoke("setBluetoothTethering", new Class[] {Boolean.TYPE}, new Object[] {on});
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}