首先看下效果图:
Demo主要功能有:打开蓝牙,关闭蓝牙,搜索设备,停止搜索,连接设备,断开当前连接设备;
Bluetooth:
Android平台支持蓝牙网络堆栈,和允许一个设备与另一个设备无线的交换数据。
首先我将官方的API进行了一系列封装:
BluetoothUtil:
package com.example.bledemo;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
import java.util.UUID;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
public class BluetoothUtil {
BluetoothAdapter mbluetoothAdapter;
private BluetoothSocket mmSocket;
Timer timer;// 扫描时间定时器
boolean isOpenBle = false;// 是否打开蓝牙
boolean isConn = false;// 是否连接设备
boolean isPaired = false;
private final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
Context context = null;
BluetoothCallBack callBack = null;
ArrayList<BluetoothDevice> list_device = new ArrayList<BluetoothDevice>();
BluetoothUtil(Context context, BluetoothCallBack callBack) {
this.callBack = callBack;
this.context = context;
initBleAdapter();
registerBoard();
}
// 初始化蓝牙适配器
public void initBleAdapter() {
if (mbluetoothAdapter == null) {
mbluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Log.i("BluetoothUtil", "initBleAdapter");
}
}
/**
* 得到本机蓝牙名称
*
*