lijunXie 2016-04-29
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,查询扫描和页面扫描都有效;
查询扫描功能:其它设备可以扫描到本设备,指的是可见性可见;
页面扫描功能:可以主动扫描其它设备;