android开发之蓝牙初步 扫描已配对蓝牙、更改蓝牙可见性、搜索外部蓝牙设备
2017-02-17 14:57
716 查看
这两天我学习了Android蓝牙的一些简单操作,今天和大家分享一下。
一,获得BluetoothAdapter对象
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
二,判断当前设备中是否有蓝牙设备
if(adapter!=null){
//有蓝牙设备
}else{
//没有蓝牙设备
}
三,判断蓝牙是否打开和打开蓝牙
[html] view
plain copy
if(adapter.isEnabled()){
//BluetoothAdapter.ACTION_REQUEST_ENABLE为启动蓝牙的action
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivity(intent);
}
四,得到所有已经配对蓝牙设备地址
[java] view
plain copy
Set<BluetoothDevice> devices = adapter.getBondedDevices();
if(devices.size()>0){
for(Iterator iterator = devices.iterator();iterator.hasNext();){
BluetoothDevice device = (BluetoothDevice) iterator.next();
System.out.println("已配对的设备:"+device.getAddress());
}
}
五,设置蓝牙的可见性
[java] view
plain copy
//启动修改蓝牙可见性的Intent
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
//设置蓝牙可见性的时间,方法本身规定最多可见300秒
intent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
startActivity(intent);
六,扫描周围的蓝牙设备
[java] view
plain copy
adapter.startDiscovery();
android把扫描到的蓝牙设备通过广播的形式发出去,所以想接收扫描结果就必须写个广播接收器类。
[java] view
plain copy
class BlutetoothReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
//从收到的intent对象中将代表远程蓝牙设配器的对象取出
BluetoothDevice devices = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
System.out.println(devices.getAddress());
}
}
七,注意事项:权限
注意:模拟器上不能模拟蓝牙设备,只能在真机上才能看到结果。
[html] view
plain copy
<!-- 使用蓝牙设备的权限 -->
<uses-permission android:name="android.permission.BLURTOOTH"/>
<!-- 管理蓝牙设备的权限 -->
<uses-permission android:name="android.permission.BLURTOOTH_ADMIN"/>
一,获得BluetoothAdapter对象
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
二,判断当前设备中是否有蓝牙设备
if(adapter!=null){
//有蓝牙设备
}else{
//没有蓝牙设备
}
三,判断蓝牙是否打开和打开蓝牙
[html] view
plain copy
if(adapter.isEnabled()){
//BluetoothAdapter.ACTION_REQUEST_ENABLE为启动蓝牙的action
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivity(intent);
}
四,得到所有已经配对蓝牙设备地址
[java] view
plain copy
Set<BluetoothDevice> devices = adapter.getBondedDevices();
if(devices.size()>0){
for(Iterator iterator = devices.iterator();iterator.hasNext();){
BluetoothDevice device = (BluetoothDevice) iterator.next();
System.out.println("已配对的设备:"+device.getAddress());
}
}
五,设置蓝牙的可见性
[java] view
plain copy
//启动修改蓝牙可见性的Intent
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
//设置蓝牙可见性的时间,方法本身规定最多可见300秒
intent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
startActivity(intent);
六,扫描周围的蓝牙设备
[java] view
plain copy
adapter.startDiscovery();
android把扫描到的蓝牙设备通过广播的形式发出去,所以想接收扫描结果就必须写个广播接收器类。
[java] view
plain copy
class BlutetoothReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
//从收到的intent对象中将代表远程蓝牙设配器的对象取出
BluetoothDevice devices = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
System.out.println(devices.getAddress());
}
}
七,注意事项:权限
注意:模拟器上不能模拟蓝牙设备,只能在真机上才能看到结果。
[html] view
plain copy
<!-- 使用蓝牙设备的权限 -->
<uses-permission android:name="android.permission.BLURTOOTH"/>
<!-- 管理蓝牙设备的权限 -->
<uses-permission android:name="android.permission.BLURTOOTH_ADMIN"/>
相关文章推荐
- android开发之蓝牙初步 扫描已配对蓝牙、更改蓝牙可见性、搜索外部蓝牙设备
- Android开发之蓝牙(Bluetooth)操作(二)--修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备(转)
- Android开发之蓝牙 --修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备
- Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备(转)
- Android开发之蓝牙(Bluetooth)操作(二)--修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备
- Android开发之蓝牙--扫描已经配对的蓝牙设备
- Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备
- Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备
- Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备
- Android开发之蓝牙(Bluetooth)操作(二)--修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备
- Android开发之蓝牙连接与配对设备
- Android蓝牙开发教程(一)——搜索蓝牙设备
- Android开发蓝牙篇之蓝牙设备开启、搜索周边蓝牙设备
- Android蓝牙开发——查询手机上已配对的蓝牙设备
- Android 6.0后蓝牙的开发,搜索,配对,连接发送数据等(一)
- Android Bluetooth蓝牙开发:Bluetooth蓝牙设备配对Paired Bluetooth Devices(2)
- android Ble4.0蓝牙开发之搜索慢、startLeScan()过时,6.0以上不需要定位权限也能快速搜索到蓝牙设备
- Android蓝牙设备的配对,连接,搜索
- Android 蓝牙设备通讯的开发(配对/连接/传输数据)
- Android 蓝牙开发之搜索、配对、连接、通信大全