安卓APP蓝牙上位机的编写二——搜索附近蓝牙设备
前言
传统蓝牙即蓝牙2.0以及之前的版本,功耗较高不能满足可穿戴设备对于续航的要求。所以目前大部分可穿戴设备都采用蓝牙4.0,即BLE蓝牙技术。
BLE(Bluetooth Low Energy)蓝牙的功耗低,能够实现快速搜索,快速连接,超低功耗保持连接和数据传输。但是BLE蓝牙数据传输速率低,特别是在安卓开发过程,BLE蓝牙一包数据最多为20字节,因此安卓系统下最好不要使用BLE蓝牙传输大量数据。
转入正题,蓝牙搜索附近设备有两种情况:
1、蓝牙搜索附近所有已经配对的设备,这种实现起来相对简单。
2、蓝牙搜索附近所有的设备,这种呢实现起来相对复杂一点。
本篇文章需要一点安卓开发的知识,如有问题/错误,欢迎在下方评论斧正。
搜索已经配对的蓝牙
APP源码链接:https://gitee.com/takajiaka/test2.git
第一种情况:如果是搜索已经配对的蓝牙那么很简单,只需要一个点击事件调用系统自带的蓝牙适配器就可以了,效果图如下:
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:onClick="list"
android:text="@string/List"
/>
MainActivity部分关键代码:
private BluetoothAdapter BA;//蓝牙适配器
//private BluetoothControler mBluetoothcontrol=new BluetoothControler();
private Set<BluetoothDevice>pairedDevices; //蓝牙设备,已经连接的设备
//点击事件处理函数
public void list(View view)
{
if(BA.isEnabled()) {//判断蓝牙已经开启
pairedDevices = BA.getBondedDevices();//获取已经匹配额设备
ArrayList list = new ArrayList();//数组
for (BluetoothDevice bt : pairedDevices)
list.add(bt.getName() + ":" + bt.getAddress());
Toast.makeText(getApplicationContext(), "显示已经连接的设备", Toast.LENGTH_SHORT).show();
final ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list);数组适配器
lv.setAdapter(adapter);//listview绑定适配器
}
else Toast.makeText(getApplicationContext(), "请先开启蓝牙!", Toast.LENGTH_SHORT).show();
}
以上代码是不是比较简单呢?用以上代码先热热身,那么接下来我们就进入攻坚环节。
搜索附近所有的蓝牙设备
APP源码链接:https://gitee.com/takajiaka/ZhiNengKai