Android 蓝牙

Posted 淅淅淸雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 蓝牙相关的知识,希望对你有一定的参考价值。

一、蓝牙权限

  在清单文件中androidManifest.xml加入四个权限,注意

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

这两个权限是是后面Android6.0新需要的权限,不然搜索设备是获取不到的


    <uses-permission android:name="android.permission.BLUETOOTH" />

    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

二、蓝牙相关的类

1.BluetoothAdapter:本地蓝牙设备适配器,用于管理蓝牙的开启/关闭、重命名、扫描、配对、连接

2.BluetoothClass:蓝牙设备类,用于描述蓝牙设备类型

3.BluetoothDevice:远程蓝牙设备类

mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();//获取本地蓝牙适配器
        
Set<BluetoothDevice> devices = mBluetoothAdapter.getBondedDevices();//已经配对过的蓝牙   用set集合 避免重复出现

三、蓝牙搜索

在搜索时使用BluetoothAdapter的startDiscovery()方法来搜索蓝牙设备。该方法会进行对其他蓝牙设备的搜索,该过程会持续12秒。

 if (mBluetoothAdapter.isDiscovering()){//此时没有开启蓝牙扫描  返回值是false
            //作用 : 是否正在搜索;
            //返回值 : 如果设备正在搜索, 返回true; 如果设备没有进行蓝牙搜索, 返回false;
            mBluetoothAdapter.cancelDiscovery();
        }
        mBluetoothAdapter.startDiscovery();
       //开启蓝牙扫描功能 adapter.startDiscovery();
       //关闭蓝牙扫描功能 adapter.cancelDiscovery();
IntentFilter mFilter = new IntentFilter();//设置广播信息过滤
mFilter.addAction(BluetoothDevice.ACTION_FOUND);//搜索结果
mFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); //搜索完成
registerReceiver(mReceiver, mFilter);//注册广播接收器,接收并且处理搜索结果

系统有关的三个广播:

ACTION_DISCOVERY_START:开始搜索

ACTION_DISCOVERY_FINISHED:搜索结束

ACTION_FOUND:找到设备,

还有两个附加域EXTRA_DEVICE和EXTRA_CLASS,附加域是放在Intent中的, 使用Intent.putExtra(附加域,附加值)方法添加附加域;

int rssi = intent.getExtras().getShort(BluetoothDevice.EXTRA_RSSI);
接受搜索后的返回列表 发现新的设备添加到布局中  蓝牙广播接收器
private BroadcastReceiver mReceiver = new BroadcastReceiver() {}

注:本文是个人简单总结,我也是个菜鸟一点一点学

以上是关于Android 蓝牙的主要内容,如果未能解决你的问题,请参考以下文章

android怎么来判断蓝牙开、关的状态?求代码

Qt低功耗蓝牙系列三(低功耗蓝牙客户端的程序设计纯Android代码)

Qt低功耗蓝牙系列三(低功耗蓝牙客户端的程序设计纯Android代码)

Android蓝牙系统框架和代码架构

Android4.42-Settings源代码分析之蓝牙模块Bluetooth总体实现(总)

Android 蓝牙扫描代码