Bluetooth-->蓝牙开发之状态判断
2016-07-27 14:21
555 查看
1:判断设备是否支持蓝牙
注意:
在小于等于JELLY_BEAN_MR1 (API 17)的版本中,使用BluetoothAdapter.getDefaultAdapter(),获取BluetoothAdapter
在大于等于JELLY_BEAN_MR2 (API 18)的版本中,使用getSystemService(Context.BLUETOOTH_SERVICE),获取BluetoothManager ,然后通过BluetoothManager.getAdapter()的方式, 获取BluetoothAdapter.
蓝牙相关权限:
2:判断蓝牙是否打开
3:BluetoothAdapter 其他方法说明
defaultAdapter.getScanMode() 扫描模式说明:
defaultAdapter.getState() 蓝牙状态说明
4:获取已经配对的蓝牙设备
5:带交互的打开蓝牙和可见性设置
至此: 文章就结束了,如有疑问: QQ群:274306954 欢迎您的加入.
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); if (null == adapter) { //蓝牙不支持 }
注意:
在小于等于JELLY_BEAN_MR1 (API 17)的版本中,使用BluetoothAdapter.getDefaultAdapter(),获取BluetoothAdapter
在大于等于JELLY_BEAN_MR2 (API 18)的版本中,使用getSystemService(Context.BLUETOOTH_SERVICE),获取BluetoothManager ,然后通过BluetoothManager.getAdapter()的方式, 获取BluetoothAdapter.
public static BluetoothAdapter getDefaultAdapter(Context context) { BluetoothAdapter adapter = null; if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR1) { adapter = BluetoothAdapter.getDefaultAdapter(); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { final BluetoothManager bluetoothManager = (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE); adapter = bluetoothManager.getAdapter(); } return adapter; }
蓝牙相关权限:
<!--允许配对设备--> <uses-permission android:name="android.permission.BLUETOOTH" /> <!--允许发现设备--> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <!--无交互的进行操作, API>=19添加 --> <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED"/>
2:判断蓝牙是否打开
if (defaultAdapter.isEnabled()) { defaultAdapter.disable();//断开蓝牙 } else { defaultAdapter.enable();//打开蓝牙 }
3:BluetoothAdapter 其他方法说明
StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(defaultAdapter.getName());//蓝牙名称 stringBuilder.append(" "); stringBuilder.append(defaultAdapter.getAddress());//蓝牙地址 stringBuilder.append("\nMode:"); stringBuilder.append(defaultAdapter.getScanMode());//扫描模式 stringBuilder.append(" State:"); stringBuilder.append(defaultAdapter.getState());//当前状态 stringBuilder.append(" "); stringBuilder.append(defaultAdapter.isDiscovering());//是否正在扫描
defaultAdapter.setName("Bluetooth Name");//设置蓝牙名称 //蓝牙名称最大支持248个字节,但是有些设备只能显示前40个字符,有些只能显示20个字符.
defaultAdapter.startDiscovery();//开始扫描蓝牙设备 defaultAdapter.cancelDiscovery();//取消扫描
defaultAdapter.getScanMode() 扫描模式说明:
20 SCAN_MODE_NONE //即不能连接设备,也不能被发现 21 SCAN_MODE_CONNECTABLE //能连接远程设备,但不能被远程设备发现 23 SCAN_MODE_CONNECTABLE_DISCOVERABLE //即连接设备,也能被发现.(通常情况下都是此模式.)
defaultAdapter.getState() 蓝牙状态说明
10 STATE_OFF //蓝牙已关闭 11 STATE_TURNING_ON //蓝牙正在打开 12 STATE_ON //蓝牙已打开 13 STATE_TURNING_OFF //蓝牙正在关闭
4:获取已经配对的蓝牙设备
defaultAdapter.getBondedDevices();//获取配对成功的蓝牙设备信息
5:带交互的打开蓝牙和可见性设置
//会弹出系统对话框,提示用户是否允许蓝牙设备对其他设备的可见性 Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); intent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 120);//可被发现的持续时间 startActivity(intent);
//会弹出一个对话框,提示用户是否允许打开蓝牙 Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivity(enableBtIntent);
//打开系统蓝牙界面 Intent intent = new Intent(Settings.ACTION_BLUETOOTH_SETTINGS); startActivity(intent);
至此: 文章就结束了,如有疑问: QQ群:274306954 欢迎您的加入.
相关文章推荐
- Windows系统中使用C#编写蓝牙通信程序的简单实例
- android通过蓝牙接收文件打开时无法自动选择合适的应用程序
- Android蓝牙通信聊天实现发送和接受功能
- Android开发中编写蓝牙相关功能的核心代码讲解
- Android蓝牙通信编程
- Android系统中的蓝牙连接程序编写实例教程
- Android设备间实现蓝牙(Bluetooth)共享上网
- Android提高之蓝牙隐藏API探秘
- Android编程之蓝牙测试实例
- Android提高之蓝牙传感应用实例
- Android Bluetooth蓝牙技术使用流程详解
- Android Bluetooth蓝牙技术初体验
- Android 蓝牙防丢实现(一)
- Win10如何使用蓝牙传输文件?Win10使用蓝牙传输文件的方法
- 蓝牙与红外传输
- 蓝牙-信息时代的黑马
- 玩转Blueteeth Chat蓝牙交友
- 蓝牙转串口的硬件和Android手机的APK设计
- 蓝牙协议解析