Android 蓝牙开发简介

Android中蓝牙模块的

1.使用蓝牙的响应权限

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

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

Android.permission.BLUETOOTH:

允许程序连接到已配对的蓝牙设备,请求连接/接收连接/传输数据需要改权限,主要用于对配对后进行操作;

android.permission.BLUETOOTH_ADMIN:

允许程序发现和配对蓝牙设备,该权限用来管理蓝牙设备,有了这个权限,应用才能使用本机的蓝牙设备,主要用于对配对前的操作;

优先级:BLUETOOTH权限是BLUETOOTH_ADMIN权限的前提,如果没有BLUETOOTH权限,就不能使用BLUETOOTH_ADMIN权限;

2.通过BluetoothAdapter设置本机的蓝牙

a.从systemService里面获取BluetoothManager

从BluetoothManager.getAdapter

或则

直接冲BluetoothAdapter的static方法获取

BluetoothAdapter.getDefaultAdapter

//直接打开蓝牙

adapter.enable();

//直接关闭蓝牙

adapter.disable();

3.通过系统设置界面设置蓝牙

//直接打开系统的蓝牙设置面板,开启或则关闭

Intentintent=newIntent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

startActivityForResult(intent,0x1);

可以在Activity中的onActivityResult()方法中处理结果,如果蓝牙模块打开成功,则返回结果吗RESULT_OK;如果蓝牙模块打开失败,则返回结果码RESULT_CANCELED;

4.开关状态值常量介绍

蓝牙关闭:intSTATE_OFF,值为10,蓝牙模块处于关闭状态;

蓝牙打开中:intSTATE_TURNING_ON,值为11,蓝牙模块正在打开;

蓝牙开启:intSTATE_ON,值为12,蓝牙模块处于开启状态;

蓝牙开启中:intSTATE_TURNING_OFF,值为13,蓝牙模块正在关闭;

蓝牙开关状态顺序:STATE_OFF-->STATE_TURNING_ON-->STATE_ON-->STATE_TURNING_OFF-->STATE_OFF

打开和关闭蓝牙模块,都可以通过ACTION_STATE_CHANGED广播来监听

5.//打开本机的蓝牙发现功能(默认打开120秒,可以将时间最多延长至300秒)

ACTION_REQUEST_DISCOVERABLE,使蓝牙可见,值为"android.bluetooth.adapter.action.REQUEST_DISCOVERABLE",默认的可见时间为120s,可以在广播中添加附加域,设置任意的可见时间,附加域为EXTRA_DISCOVERABLE_DURATION,设置持续时间(最多300秒);需要BLUETOOTH权限;

可以在Activity中的onActivityResult()方法中处理结果,如果蓝牙模块设置可见成功,则返回结果吗RESULT_OK;如果蓝牙模块设置可见失败,则返回结果码RESULT_CANCELED;

[java]viewplaincopy

IntentdiscoverableIntent=newIntent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);

discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,0);

startActivityForResult(discoverableIntent,resultCode).

6.扫描状态值

无功能状态:intSCAN_MODE_NONE,值为20,查询扫描和页面扫描都失效,该状态下蓝牙模块既不能扫描其它设备,也不可见;

扫描状态:intSCAN_MODE_CONNECTABLE,值为21,查询扫描失效,页面扫描有效,该状态下蓝牙模块可以扫描其它设备,从可见性来说只对已配对的蓝牙设备可见,只有配对的设备才能主动连接本设备;

可见状态:intSCAN_MODE_CONNECTABLE_DISCOVERABLE,值为23,查询扫描和页面扫描都有效;

查询扫描功能:其它设备可以扫描到本设备,指的是可见性可见;

页面扫描功能:可以主动扫描其它设备;

相关推荐