jimu-decompiled/sources/com/ubtrobot/jimu/bluetooth/base/BluetoothLib.java
2025-05-13 19:24:51 +02:00

232 lines
8.1 KiB
Java

package com.ubtrobot.jimu.bluetooth.base;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Handler;
import android.text.TextUtils;
import android.util.Log;
import com.ubtrobot.jimu.bluetooth.Cancellable;
import com.ubtrobot.jimu.bluetooth.base.discover.ScanResult;
import com.ubtrobot.jimu.bluetooth.base.discover.ScannedHubEmitter;
import com.ubtrobot.jimu.bluetooth.proxy.Callback;
import com.ubtrobot.jimu.bluetooth.proxy.Device;
import com.ubtrobot.jimu.bluetooth.proxy.DeviceListener;
import com.ubtrobot.jimu.bluetooth.proxy.Proxy;
import com.ubtrobot.log.ALog;
import java.util.ArrayList;
/* loaded from: classes2.dex */
public class BluetoothLib extends Callback implements Proxy {
private static final String k = "BluetoothLib";
public static BluetoothLib l;
public static BlueToothManager m;
private BluetoothAdapter b;
private Context c;
private ArrayList<String> d = new ArrayList<>();
private Boolean e;
private DeviceListener f;
private ScannedHubEmitter g;
private Handler h;
private Cancellable i;
private final BroadcastReceiver j;
public BluetoothLib() {
new ArrayList();
this.e = false;
new Runnable(this) { // from class: com.ubtrobot.jimu.bluetooth.base.BluetoothLib.1
@Override // java.lang.Runnable
public void run() {
}
};
this.i = new Cancellable() { // from class: com.ubtrobot.jimu.bluetooth.base.BluetoothLib.3
@Override // com.ubtrobot.jimu.bluetooth.Cancellable
public boolean cancel() {
BluetoothLib.this.c();
BluetoothLib.this.h.removeCallbacksAndMessages(null);
return BluetoothLib.this.b != null && BluetoothLib.this.b.isDiscovering();
}
@Override // com.ubtrobot.jimu.bluetooth.Cancellable
public boolean isCancelled() {
return BluetoothLib.this.b != null && BluetoothLib.this.b.isDiscovering();
}
};
this.j = new BroadcastReceiver() { // from class: com.ubtrobot.jimu.bluetooth.base.BluetoothLib.4
@Override // android.content.BroadcastReceiver
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (!"android.bluetooth.device.action.FOUND".equals(action)) {
"android.bluetooth.adapter.action.DISCOVERY_FINISHED".equals(action);
return;
}
BluetoothDevice bluetoothDevice = (BluetoothDevice) intent.getParcelableExtra("android.bluetooth.device.extra.DEVICE");
if (bluetoothDevice == null || intent.getExtras() == null) {
return;
}
short s = intent.getExtras().getShort("android.bluetooth.device.extra.RSSI");
String replace = TextUtils.isEmpty(bluetoothDevice.getName()) ? "" : bluetoothDevice.getName().replace("\n", "").replace("\\n", "");
String str = replace + "\n" + bluetoothDevice.getAddress() + "\n" + ((int) s);
if (BluetoothLib.this.c(str)) {
return;
}
BluetoothLib.this.d.add(str);
BluetoothLib.this.f.b(str);
Proxy.a.add(new Device(bluetoothDevice.getAddress(), replace));
if (!TextUtils.isEmpty(bluetoothDevice.getName()) && bluetoothDevice.getName().toLowerCase().contains("jimu")) {
ScanResult scanResult = new ScanResult(bluetoothDevice, s);
if (BluetoothLib.this.g != null) {
BluetoothLib.this.g.a(scanResult);
}
}
}
};
}
public static synchronized BluetoothLib d() {
BluetoothLib bluetoothLib;
synchronized (BluetoothLib.class) {
if (l == null) {
synchronized (BluetoothLib.class) {
if (l == null) {
l = new BluetoothLib();
}
}
}
bluetoothLib = l;
}
return bluetoothLib;
}
private void e() {
if (this.e.booleanValue()) {
return;
}
this.c.registerReceiver(this.j, new IntentFilter("android.bluetooth.device.action.FOUND"));
this.c.registerReceiver(this.j, new IntentFilter("android.bluetooth.adapter.action.DISCOVERY_FINISHED"));
this.e = true;
}
public void b() {
ALog.a(k).d("startScan");
BluetoothAdapter bluetoothAdapter = this.b;
if (bluetoothAdapter == null) {
return;
}
try {
if (bluetoothAdapter.isDiscovering()) {
this.b.cancelDiscovery();
}
this.d.clear();
this.b.startDiscovery();
} catch (Exception e) {
Log.e(k, "Start scan fail", e);
}
}
public void c() {
BluetoothAdapter bluetoothAdapter = this.b;
if (bluetoothAdapter == null || !bluetoothAdapter.isDiscovering()) {
return;
}
this.b.cancelDiscovery();
}
@Override // com.ubtrobot.jimu.bluetooth.proxy.Proxy
public boolean a(Context context, DeviceListener deviceListener) {
this.c = context;
this.f = deviceListener;
if (m == null) {
m = new BlueToothManager(context, this);
m.c();
}
this.b = BluetoothAdapter.getDefaultAdapter();
if (this.b == null) {
return false;
}
e();
Log.i(k, "BluetoothLib-init");
this.h = new Handler(context.getMainLooper());
return true;
}
/* JADX INFO: Access modifiers changed from: private */
public boolean c(String str) {
for (int i = 0; i < this.d.size(); i++) {
if (this.d.get(i).equals(str)) {
return true;
}
}
return false;
}
@Override // com.ubtrobot.jimu.bluetooth.proxy.Callback
public void b(String str, byte b, byte[] bArr, int i) {
this.f.a(str, b, bArr, i);
}
@Override // com.ubtrobot.jimu.bluetooth.proxy.Callback
public void b(String str) {
this.f.disconnect(str);
}
public Cancellable a(final ScannedHubEmitter scannedHubEmitter, int i) {
BluetoothAdapter bluetoothAdapter = this.b;
if (bluetoothAdapter == null) {
scannedHubEmitter.a(-2, "Device not support bluetooth!");
return null;
}
if (bluetoothAdapter.getState() != 12) {
scannedHubEmitter.a(-3, "Bluetooth is not turn on!");
return null;
}
this.g = scannedHubEmitter;
b();
this.h.postDelayed(new Runnable() { // from class: com.ubtrobot.jimu.bluetooth.base.BluetoothLib.2
@Override // java.lang.Runnable
public void run() {
BluetoothLib.this.c();
scannedHubEmitter.a();
}
}, i);
return this.i;
}
@Override // com.ubtrobot.jimu.bluetooth.proxy.Proxy
public void a(String str) {
BluetoothAdapter bluetoothAdapter = this.b;
if (bluetoothAdapter == null) {
return;
}
if (bluetoothAdapter.isDiscovering()) {
this.b.cancelDiscovery();
}
BluetoothDevice remoteDevice = this.b.getRemoteDevice(str);
m.b();
m.a(remoteDevice);
}
@Override // com.ubtrobot.jimu.bluetooth.proxy.Proxy
public void a() {
m.b();
}
@Override // com.ubtrobot.jimu.bluetooth.proxy.Proxy
public void a(String str, byte b, byte[] bArr, int i) {
m.b(str, b, bArr, i);
}
@Override // com.ubtrobot.jimu.bluetooth.proxy.Proxy
public void a(String str, boolean z) {
m.a(str, z);
}
@Override // com.ubtrobot.jimu.bluetooth.proxy.Callback
public void a(boolean z, String str) {
this.f.onConnectState(z, str);
}
}