Android 蓝牙开发简介

Android中蓝牙模块的

1.使用蓝牙的响应权限
<uses-permission android:name="android.permission.BLUETOOTH" /> 
<uses-permission android: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.通过系统设置界面设置蓝牙
  //直接打开系统的蓝牙设置面板,开启或则关闭
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
startActivityForResult(intent, 0x1); 
可以在Activity中的onActivityResult()方法中处理结果, 如果蓝牙模块打开成功, 则返回结果吗RESULT_OK; 如果蓝牙模块打开失败, 则返回结果码RESULT_CANCELED;


4.开关状态值常量介绍
蓝牙关闭 : int STATE_OFF , 值为10, 蓝牙模块处于关闭状态;
蓝牙打开中 : int STATE_TURNING_ON , 值为11, 蓝牙模块正在打开;
蓝牙开启 : int STATE_ON , 值为12, 蓝牙模块处于开启状态;
蓝牙开启中 : int STATE_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] view plain copy
Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); 
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0); 
startActivityForResult(discoverableIntent,resultCode) .

6.扫描状态值
无功能状态 : int SCAN_MODE_NONE , 值为20, 查询扫描和页面扫描都失效, 该状态下蓝牙模块既不能扫描其它设备, 也不可见;
扫描状态 : int SCAN_MODE_CONNECTABLE , 值为21, 查询扫描失效, 页面扫描有效, 该状态下蓝牙模块可以扫描其它设备, 从可见性来说只对已配对的蓝牙设备可见, 只有配对的设备才能主动连接本设备;
可见状态 : int SCAN_MODE_CONNECTABLE_DISCOVERABLE, 值为23, 查询扫描和页面扫描都有效;

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


猜你喜欢

转载自aliusa.iteye.com/blog/2294890