uniapp Android如何授权打开系统蓝牙Bluetooth?

uniapp Android如何授权打开系统蓝牙?

使用uniapp开发蓝牙项目过程中,涉及到检测手机系统蓝牙是否打开功能,这里介绍Android,iOS暂时没有找到优方法。朋友们如果有好的方案,欢迎评论分享~

效果图

在这里插入图片描述


开启蓝牙

  • Android平台:调用方法,自动检测是否打开手机蓝牙,如未打开,自动弹窗提示用户是否允许授权。
const isCheckOpenBluetooth = () => {
	switch(uni.getSystemInfoSync().platform){
		case 'android':
            let main, BluetoothAdapter, BAdapter;
			main = plus.android.runtimeMainActivity();
			BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");
			BAdapter = BluetoothAdapter.getDefaultAdapter();
            
            // 蓝牙未开启,打开蓝牙
			if(!BAdapter.isEnabled()) {
				BAdapter.enable();
			}else{
                // 蓝牙 已打开,执行相关业务
				BLE.openBluetoothAdapter();
			}
			break;
		case 'ios':
			BLE.openBluetoothAdapter();
			break;
	}
}

关闭蓝牙

if(BAdapter.isEnabled()) {
    BAdapter.disable();
}

参考文章

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
你可以通过使用 AndroidBluetoothAdapter 类提供的方法来监听蓝牙的状态。以下是一个示例代码: ``` import android.bluetooth.BluetoothAdapter; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; public class BluetoothStateListener { private BluetoothAdapter bluetoothAdapter; private BluetoothStateReceiver bluetoothStateReceiver; public BluetoothStateListener(Context context) { bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); bluetoothStateReceiver = new BluetoothStateReceiver(); IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED); context.registerReceiver(bluetoothStateReceiver, filter); } public void unregisterReceiver(Context context) { context.unregisterReceiver(bluetoothStateReceiver); } private class BluetoothStateReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(BluetoothAdapter.ACTION_STATE_CHANGED)) { int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1); switch (state) { case BluetoothAdapter.STATE_ON: // 蓝牙打开 break; case BluetoothAdapter.STATE_OFF: // 蓝牙已关闭 break; } } } } } ``` 以上代码中,我们通过注册一个 BroadcastReceiver 来监听 BluetoothAdapter.ACTION_STATE_CHANGED 广播事件,当蓝牙状态发生变化时,会触发该广播事件,我们可以在 BroadcastReceiver 的 onReceive 方法中处理蓝牙状态的变化。在使用完后,记得调用 unregisterReceiver 方法来注销 BroadcastReceiver。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值