From 0119e703ff4a8f3201610c2866702f7f92da0b26 Mon Sep 17 00:00:00 2001 From: Javier Date: Sun, 26 Jul 2020 18:11:10 +0200 Subject: initial import --- .../javispedro/autobluetether/BtTetherEnabler.java | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 app/src/main/java/com/javispedro/autobluetether/BtTetherEnabler.java (limited to 'app/src/main/java/com/javispedro/autobluetether/BtTetherEnabler.java') diff --git a/app/src/main/java/com/javispedro/autobluetether/BtTetherEnabler.java b/app/src/main/java/com/javispedro/autobluetether/BtTetherEnabler.java new file mode 100644 index 0000000..bae42c8 --- /dev/null +++ b/app/src/main/java/com/javispedro/autobluetether/BtTetherEnabler.java @@ -0,0 +1,53 @@ +package com.javispedro.autobluetether; + +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothProfile; +import android.content.Context; +import android.content.ContextWrapper; +import android.util.Log; + +public class BtTetherEnabler extends ContextWrapper { + private final static String TAG = "BtTetherEnabler"; + + public BtTetherEnabler(Context context) { + super(context); + } + + public static class EnableException extends Exception { + public EnableException(String message, Throwable cause) { + super(message, cause); + } + + public EnableException(String message) { + super(message); + } + } + + public void startTethering() throws EnableException { + final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); + if (adapter == null) { + Log.e(TAG, "no BT adapter"); + throw new EnableException("No Bluetooth adapter"); + } + + adapter.getProfileProxy(getBaseContext(), new BluetoothProfile.ServiceListener() { + public void onServiceConnected(int profile, BluetoothProfile proxy) { + Log.d(TAG, "onServiceConnected"); + final BtPanWrapper wrapper = new BtPanWrapper(proxy); + boolean is_on = wrapper.isTetheringOn(); + Log.d(TAG, "isTetheringOn: " + is_on); + if (!is_on) { + Log.d(TAG, "trying to turn on"); + wrapper.setBluetoothTethering(true); + } + adapter.closeProfileProxy(profile, proxy); + } + + public void onServiceDisconnected(int profile) { + Log.d(TAG, "onServiceDisconnected"); + } + }, BtPanWrapper.PROFILE_ID); + } + + +} -- cgit v1.2.3