// private String uuid_characteristic_send = “自己获取的”;
private boolean isStandByBle;
private boolean isEnableBle;
private Context context;
private Handler handler = new Handler(Looper.getMainLooper());
private final int START_SCAN = 100;
private final int RESET_CONNECT = 101;
// private final UUID[] serviceUuids;
private BleDevice connectedBleDevice;
private BleScanRunnable bleScanRunnable;
private BleResetConnectRunnable bleConnectRunnable;
private BleManager bleManager;
private BleConnectedRunnable bleConnectedRunnable;
private boolean isResetConnect = false;
private boolean isScaning;
private final ReturnTimeOutRunnable returnTimeOutRunnable;
private String currentData = “”;
private final ReceiveDataRunnable receiveDataRunnable;
private BleUtil(Context context) {
this.context = context.getApplicationContext();
bleManager = BleManager.getInstance();
isStandByBle = bleManager.isSupportBle();
isEnableBle = bleManager.isBlueEnable();
// //根据指定的UUID扫描特定的设备
// UUID serviceUuid = UUID.fromString(uuid_service);
// serviceUuids = new UUID[]{serviceUuid};
bleScanRunnable = new BleScanRunnable();
bleConnectRunnable = new BleResetConnectRunnable();
bleConnectedRunnable = new BleConnectedRunnable();
returnTimeOutRunnable = new ReturnTimeOutRunnable();
receiveDataRunnable = new ReceiveDataRunnable();
}
public static BleUtil getInstance(Context context) {
if (bleUtil == null) {
synchronized (BleUtil.class) {
if (bleUtil == null) {
bleUtil = new BleUtil(context);
}
}
}
return bleUtil;
}
public void startBle() {
if (!isStandByBle) {
Toast.makeText(context, “该设备不支持蓝牙功能”, Toast.LENGTH_SHORT).show();
return;
}
bleDevices = new ArrayList<>();
BleScanRuleConfig scanRuleConfig = new BleScanRuleConfig.Builder()
// .setServiceUuids(serviceUuids)
// .setAutoConnect(true)
// .set