蓝牙---Bluetooth

官方文档

Provides classes that manage Bluetooth functionality, such as scanning for devices, connecting with devices, and managing data transfer between devices. The Bluetooth API supports both "Classic Bluetooth" and Bluetooth Low Energy

提供管理蓝牙功能的类,例如对设备的扫描,连接设备,和管理设备之间的数据传输。蓝牙API支持经典蓝牙和低功耗蓝牙。

For more information about Classic Bluetooth, see the Bluetooth guide. For more information about Bluetooth Low Energy, see the Bluetooth Low Energy (BLE) guide.

对于更多关于经典蓝牙信息,请看蓝牙指南 对于更多关于蓝牙低耗,请查看蓝牙低耗指南



首先,要操作蓝牙,先要在AndroidManifest.xml里加入权限

6.0后需要动态获取权限

//判断是否有权限

if (ContextCompat.checkSelfPermission(this,Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

//请求权限

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},MY_PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION);

//判断是否需要 向用户解释,为什么要申请该权限if(ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.READ_CONTACTS)) {

Toast.makeText(this, "shouldShowRequestPermissionRationale", Toast.LENGTH_SHORT).show();}}



蓝牙基本操作

BluetoothAdapter ---蓝牙适配器,操作蓝牙,包括:启动蓝牙、查询、绑定设备等

获取本地蓝牙适配器

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

startDiscovery() ---开启扫描

cancelDiscovery () ---- 取消当前的设备发现过程。意思是关闭正在搜索

isEnable()---如果蓝牙当前已启用且可以使用,则返回true

disable()---关闭蓝牙

enable()---打开蓝牙,不会提示用户

if(!mBluetoothAdapter.isEnabled()){

//弹出对话框提示用户是后打开

Intent enabler =newIntent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

startActivityForResult(enabler, REQUEST_ENABLE);

//不做提示,直接打开,不建议用下面的方法,有的手机会有问题。

// mBluetoothAdapter.enable();

getAddress()---获取本地蓝牙地址

getBondedDevices()---返回绑定(配对)到本地适配器的一组BluetoothDevice 对象。

getDefaultAdapter()---获取蓝牙适配器

getName()---获取蓝牙名称

getRemoteDevice()---获取给定蓝牙硬件地址的BluetoothDevice对象。

getScanMode()---获取本地蓝牙适配器的当前蓝牙扫描模式。

getState()---获取本地蓝牙适配器的当前状态。

isDiscovering()---如果本地蓝牙适配器当前正在设备发现过程中,则返回true。


BluetoothDevice---远程蓝牙设备,获取 名称,地址,类别和绑定状态

createBond()----开始与远程设备的绑定(配对)过程。

createInsecureRfcommSocketToServiceRecord(UUIDuuid)---创建一个RFCOMMBluetoothSocket套接字,准备使用uuid的SDP查找来启动到此远程设备的不安全传出连接。

createRfcommSocketToServiceRecord(UUIDuuid)---使用SDU查找uuid,创建一个RFCOMMBluetoothSocket准备启动到此远程设备的安全传出连接。

getBluetoothClass()---获取远程设备的蓝牙类

getName()---获取远程设备的友好蓝牙名称

getType()---获取远程设备的蓝牙设备类型

getUuids()--返回远程设备的支持功能(UUID)



BluetoothSocket---连接蓝牙,线程安全

close()---关闭此流并释放与其关联的所有系统资源

connect()---尝试连接到远程设备

getInputStream()---获取输入流

getOutputStream()---获取输出流

getRemoteDeveice()---获取此套接字连接或连接到的远程设备

isConnected()---获取连接状态


你可能感兴趣的:(蓝牙---Bluetooth)