美文网首页
Android 蓝牙开发 ( 一 开启蓝牙 , 扫码周边设备)

Android 蓝牙开发 ( 一 开启蓝牙 , 扫码周边设备)

作者: 微笑城ios | 来源:发表于2023-06-25 15:36 被阅读0次

Android 蓝牙开发

一 配置环境

AndroidMainifest.xml 中配置下面的权限

    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
  ## 有关于 定位权限的也需要加上
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-feature android:name="android.hardware.location.gps" />

基础类

通过下面的方法 获取系统的 蓝牙适配器

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter == null) {
            // 设备不支持蓝牙 -- 没得玩了.. 
            System.out.println("设备不支持蓝牙");
            return;
}

权限检测

if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
                ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            // 权限未授予,请求权限
            ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, REQUEST_BLUETOOTH_SCAN_PERMISSION);
        } else {
            // 权限已授予,执行蓝牙扫描相关的操作
            System.out.println("开启了蓝牙扫描");
            bluetoothAdapter.startDiscovery();
        }

异常情况处理

enableBtLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
                result -> {
                    if (result.getResultCode() == Activity.RESULT_OK) {
                        // 在蓝牙已启用时执行的操作
                        System.out.println("在蓝牙已启用时执行的操作");
                        bluetoothAdapter.startDiscovery();
                    } else {
                        // 在蓝牙未启用时执行的操作
                        System.out.println("在蓝牙未启用时执行的操作");
                        /// 不开启蓝牙 -- 没得玩哦
                    }
                });

        if (!bluetoothAdapter.isEnabled()) {
            Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            enableBtLauncher.launch(enableBtIntent);
        }

注册广播 接受蓝牙搜索结果

 // 创建BroadcastReceiver以接收蓝牙设备的搜索结果
        receiver = new BroadcastReceiver() {
            @SuppressLint({"RestrictedApi", "MissingPermission"})
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                if (BluetoothDevice.ACTION_FOUND.equals(action)) {
                    // 当找到设备时
                    BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                    // 处理设备
                    System.out.println(device.getName());
                }
            }
        };

        IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
        getContext().registerReceiver(receiver, filter);

相关文章

  • Android蓝牙周边设备开发

    本文只讲述实际开发中的最基本的概念、用法及代码,不过多深入概念及源码。 什么是周边设备 BLE(蓝牙4.0+) 有...

  • Android Bluetooth相关操作

    Android Bluetooth 参考 Android 蓝牙开发(1) android蓝牙耳机下的语音(输入/识...

  • 【七】蓝牙开发系列--蓝牙开发小结

    前言:本篇对蓝牙移动开发做个简略梳理,涉及内容有GATT Profile、Android蓝牙开发、iOS蓝牙开发等...

  • Android使用AccessibilityService实现U

    android单屏机,通过扫码枪扫描二维码的场景非常多,扫码枪的种类也有蓝牙、USB、串口等等 目前USB的扫码枪...

  • Android实践 -- Android蓝牙设置连接

    蓝牙开发相关 使用Android Bluetooth APIs将设备通过蓝牙连接并通信,设置蓝牙,查找蓝牙设备,配...

  • Android零散技术点

    Android BLE 蓝牙开发入门 逐步指导新手进行 Android ble 蓝牙的开发,避免踩坑。Androi...

  • Android 蓝牙可见性开启与关闭

    Android 蓝牙可见性开启与关闭 定制的Android设备只有在蓝牙页面才能被扫描搜索到,要求软件开启启动后作...

  • Android 经典蓝牙开发(二)

    本文章经典蓝牙开发目录: 1、权限申请2、开启蓝牙3、扫描蓝牙4、配对蓝牙5、连接蓝牙6、通信(实现双向通信)(我...

  • Android蓝牙开发流程实践

    概述 工作需要用到Android蓝牙开发,所以在这里对Android蓝牙开发做一个整理。 先了解下Android蓝...

  • iOS 蓝牙扫码枪 开发

    前言: 这段时间公司开发蓝牙扫描业务,找了点时间总结总结,第一次写文章,求大神们放过,为了巩固下知识点,也为了能够...

网友评论

      本文标题:Android 蓝牙开发 ( 一 开启蓝牙 , 扫码周边设备)

      本文链接:https://www.haomeiwen.com/subject/rqiiydtx.html