Android Question How to enable bluetooth tether

Kristofferson

New Member
Licensed User
Longtime User
Using B4A, how do you turn on Bluetooth Tethering and allow the host device to share it's internet connection to the connected device? Also how to check the BT tether status.
 

xpectmore

Member
Licensed User
Longtime User
I don't think that it is possible to programmatically start Bluetooth tethering.
Using B4A, how do you turn on Bluetooth Tethering and allow the host device to share it's internet connection to the connected device? Also how to check the BT tether status.
http://stackoverflow.com/questions/22864670/enable-bluetooth-tethering-android-programmatically

and better
http://stackoverflow.com/questions/...disable-bluetooth-programmatically-in-android
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
Here:
B4X:
Sub Process_Globals
   'These global variables will be declared once when the application starts.
   'These variables can be accessed from all modules.

End Sub

Sub Globals
   'These global variables will be redeclared each time the activity is created.
   'These variables can only be accessed from this module.

End Sub

Sub Activity_Create(FirstTime As Boolean)
   Dim jo As JavaObject
   jo.InitializeContext
   jo.RunMethod("BTPan", Null)
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

#if Java
   import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Set;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothProfile;
import android.content.Context;
import android.util.Log;
   public void BTPan() throws Exception {
     BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
     Class<?> classBluetoothPan = null;
     Constructor<?> BTPanCtor = null;
     Object BTSrvInstance = null;
     Method mBTPanConnect;

     classBluetoothPan = Class.forName("android.bluetooth.BluetoothPan");
     mBTPanConnect = classBluetoothPan.getDeclaredMethod("connect", BluetoothDevice.class);
     BTPanCtor = classBluetoothPan.getDeclaredConstructor(Context.class, BluetoothProfile.ServiceListener.class);
     BTPanCtor.setAccessible(true);
     BTSrvInstance = BTPanCtor.newInstance(this, new BTPanServiceListener(this));

     Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
     // If there are paired devices
     if (pairedDevices.size() > 0) {
       // Loop through paired devices
       for (BluetoothDevice device : pairedDevices) {
         mBTPanConnect.invoke(BTSrvInstance, device);
       }
     }
   }
   public class BTPanServiceListener implements BluetoothProfile.ServiceListener {

    private final Context context;

    public BTPanServiceListener(final Context context) {
    this.context = context;
    }

    @Override
    public void onServiceConnected(final int profile,
    final BluetoothProfile proxy) {
    //Some code must be here or the compiler will optimize away this callback.
    Log.e("MyApp", "BTPan proxy connected");

    }

    @Override
    public void onServiceDisconnected(final int profile) {
    }
   }
#End If
 
Upvote 0
Top