编程方式启用蓝牙绑定的android蓝牙、绑定、方式、android

2023-09-06 22:53:57 作者:没对象ペ省流量

我想做出这样的蓝牙自动圈养玩商店的应用程序。我看在论坛上,Android是非常安全意识,不会让没有用户交互此设置。

I am trying to make an application like "Bluetooth auto tethering" on play store. I read on the forum that Android is very security-aware and will not enable this setting without user interaction.

我需要有关如何启用蓝牙绑定一些解释。

I need some explanations about how enable bluetooth tethering.

感谢您

推荐答案

以下code的作品完美的我。

The below code works perfectly for me

String sClassName = "android.bluetooth.BluetoothPan";

try {  

    Class<?> classBluetoothPan = Class.forName(sClassName);

    Constructor<?> ctor = classBluetoothPan.getDeclaredConstructor(Context.class, BluetoothProfile.ServiceListener.class);
    ctor.setAccessible(true);
    Object instance = ctor.newInstance(getApplicationContext(), new BTPanServiceListener(getApplicationContext()));                 
    //  Set Tethering ON
    Class[] paramSet = new Class[1];
    paramSet[0] = boolean.class;

    Method setTetheringOn = classBluetoothPan.getDeclaredMethod("setBluetoothTethering", paramSet);

    setTetheringOn.invoke(instance,true);

} catch (ClassNotFoundException e) {
    e.printStackTrace();
} catch (Exception e) {
    e.printStackTrace();
}

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) {
    }
}