历史记录筛选
This commit is contained in:
2
.idea/deploymentTargetSelector.xml
generated
2
.idea/deploymentTargetSelector.xml
generated
@@ -4,7 +4,7 @@
|
||||
<selectionStates>
|
||||
<SelectionState runConfigName="app">
|
||||
<option name="selectionMode" value="DROPDOWN" />
|
||||
<DropdownSelection timestamp="2026-05-21T07:20:21.292192200Z">
|
||||
<DropdownSelection timestamp="2026-06-03T03:26:05.515101Z">
|
||||
<Target type="DEFAULT_BOOT">
|
||||
<handle>
|
||||
<DeviceId pluginId="PhysicalDevice" identifier="serial=D122222104A9" />
|
||||
|
||||
@@ -154,6 +154,7 @@ public class MyApplication extends Application {
|
||||
.setUseDeviceSize(true)
|
||||
// 是否支持 fragment
|
||||
.setCustomFragment(true);
|
||||
android.util.Log.e("TEST", "hello");
|
||||
}
|
||||
|
||||
private boolean shouldInit() {
|
||||
|
||||
@@ -15,13 +15,17 @@ import android.graphics.drawable.AnimationDrawable;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.ParcelUuid;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.ckkj.water.BuildConfig;
|
||||
import com.ckkj.water.ConstantUtil;
|
||||
import com.ckkj.water.R;
|
||||
import com.ckkj.water.base.BaseActivity;
|
||||
@@ -43,6 +47,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import no.nordicsemi.android.support.v18.scanner.BluetoothLeScannerCompat;
|
||||
import no.nordicsemi.android.support.v18.scanner.ScanCallback;
|
||||
@@ -63,6 +68,9 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
|
||||
private static final int REQUEST_BLUETOOTH_PERMISSION = 1002;
|
||||
private List<BluetoothDevice> discoveredDevices = new ArrayList<>();
|
||||
private AlertDialog deviceListDialog;
|
||||
private String mUuid = "1775244d-6b43-439b-877c-060f2d9bed07";
|
||||
private ScanCallback mScanCallback;
|
||||
private boolean bluetoothReady = false;
|
||||
|
||||
@Override
|
||||
public DevicePresenter createPresenter() {
|
||||
@@ -73,6 +81,7 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
|
||||
@Override
|
||||
public void initData(Bundle savedInstanceState) {
|
||||
super.initData(savedInstanceState);
|
||||
|
||||
ActivityManager.addActivity(this,getClass().getSimpleName() + "_" + ConstantUtil.ADD_DEVICE_FLAG);
|
||||
ImmersionBar.with(this)
|
||||
.statusBarColor(R.color.mainBackgroundColor) // 设置状态栏颜色
|
||||
@@ -83,34 +92,9 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
|
||||
if(checkBluetoothPermissions()){
|
||||
// 初始化蓝牙适配器
|
||||
initBluetooth();
|
||||
BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner();
|
||||
ScanSettings settings = new ScanSettings.Builder()
|
||||
.setLegacy(false)
|
||||
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
|
||||
.setReportDelay(5000)
|
||||
.setUseHardwareBatchingIfSupported(true)
|
||||
.build();
|
||||
List<ScanFilter> filters = new ArrayList<>();
|
||||
scanner.startScan(null, settings, new ScanCallback() {
|
||||
@Override
|
||||
public void onScanResult(int callbackType, @NonNull ScanResult result) {
|
||||
super.onScanResult(callbackType, result);
|
||||
|
||||
if (bluetoothReady) {
|
||||
startBleScan();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBatchScanResults(@NonNull List<ScanResult> results) {
|
||||
super.onBatchScanResults(results);
|
||||
if(results != null){
|
||||
int a = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScanFailed(int errorCode) {
|
||||
super.onScanFailed(errorCode);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -138,10 +122,57 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
|
||||
initListener();
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始 BLE 扫描
|
||||
*/
|
||||
private void startBleScan() {
|
||||
BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner();
|
||||
UUID SERVICE_UUID = UUID.fromString(mUuid);
|
||||
ParcelUuid parcelUuid = new ParcelUuid(SERVICE_UUID);
|
||||
ScanSettings settings = new ScanSettings.Builder()
|
||||
.setLegacy(false)
|
||||
.setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
|
||||
.setReportDelay(5000)
|
||||
.build();
|
||||
List<ScanFilter> filters = new ArrayList<>();
|
||||
filters.add(new ScanFilter.Builder().setServiceUuid(parcelUuid).build());
|
||||
mScanCallback = new ScanCallback() {
|
||||
@Override
|
||||
public void onScanResult(int callbackType, @NonNull ScanResult result) {
|
||||
super.onScanResult(callbackType, result);
|
||||
if (result.getScanRecord() != null) {
|
||||
String deviceName = result.getScanRecord().getDeviceName();
|
||||
Log.e("TEST", "onScanResult: " + deviceName);
|
||||
ToastUtil.showShort(mContext, "扫描到设备: " + deviceName);
|
||||
}else{
|
||||
Log.e("TEST", "onScanResult: " + "设备名称为空");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBatchScanResults(@NonNull List<ScanResult> results) {
|
||||
super.onBatchScanResults(results);
|
||||
Log.e("TEST", "onBatchScanResults: " + results.size() + " devices");
|
||||
if (results != null && !results.isEmpty()) {
|
||||
ToastUtil.showShort(mContext, "批量扫描到 " + results.size() + " 个设备");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScanFailed(int errorCode) {
|
||||
super.onScanFailed(errorCode);
|
||||
Log.e("TEST", "onScanFailed: " + errorCode);
|
||||
ToastUtil.showShort(mContext, "扫描失败,错误码: " + errorCode);
|
||||
}
|
||||
};
|
||||
scanner.startScan(filters, settings, mScanCallback);
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化蓝牙适配器
|
||||
*/
|
||||
private void initBluetooth() {
|
||||
Log.e("TEST", "initBluetooth: 开始初始化");
|
||||
BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
|
||||
if (bluetoothManager != null) {
|
||||
bluetoothAdapter = bluetoothManager.getAdapter();
|
||||
@@ -154,8 +185,12 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
|
||||
|
||||
// 检查蓝牙是否开启
|
||||
if (!bluetoothAdapter.isEnabled()) {
|
||||
Log.e("TEST", "initBluetooth: 蓝牙未开启,请求开启");
|
||||
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
|
||||
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
|
||||
} else {
|
||||
Log.e("TEST", "initBluetooth: 蓝牙已开启");
|
||||
bluetoothReady = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,112 +225,7 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始扫描蓝牙设备
|
||||
*/
|
||||
private void startBleScan() {
|
||||
if (bluetoothAdapter == null || !bluetoothAdapter.isEnabled()) {
|
||||
ToastUtil.showShort(mContext, "请先开启蓝牙");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!checkBluetoothPermissions()) {
|
||||
return;
|
||||
}
|
||||
|
||||
discoveredDevices.clear();
|
||||
showLoadingDialog();
|
||||
|
||||
// 获取已配对设备
|
||||
Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
|
||||
if (pairedDevices != null && !pairedDevices.isEmpty()) {
|
||||
discoveredDevices.addAll(pairedDevices);
|
||||
}
|
||||
|
||||
// 开始扫描
|
||||
new Handler().postDelayed(() -> {
|
||||
stopBleScan();
|
||||
showDeviceListDialog();
|
||||
}, 10000); // 10秒后自动停止扫描
|
||||
}
|
||||
|
||||
/**
|
||||
* 停止扫描
|
||||
*/
|
||||
private void stopBleScan() {
|
||||
hideDialogLoading();
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示设备列表对话框
|
||||
*/
|
||||
private void showDeviceListDialog() {
|
||||
if (discoveredDevices.isEmpty()) {
|
||||
ToastUtil.showShort(mContext, "未发现蓝牙设备");
|
||||
return;
|
||||
}
|
||||
|
||||
String[] deviceNames = new String[discoveredDevices.size()];
|
||||
for (int i = 0; i < discoveredDevices.size(); i++) {
|
||||
BluetoothDevice device = discoveredDevices.get(i);
|
||||
String name = device.getName();
|
||||
if (name == null || name.isEmpty()) {
|
||||
name = "未知设备";
|
||||
}
|
||||
deviceNames[i] = name + "\n" + device.getAddress();
|
||||
}
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setTitle("发现 " + discoveredDevices.size() + " 个设备");
|
||||
builder.setItems(deviceNames, (dialog, which) -> {
|
||||
BluetoothDevice selectedDevice = discoveredDevices.get(which);
|
||||
connectToDevice(selectedDevice);
|
||||
});
|
||||
builder.setNegativeButton("取消", null);
|
||||
deviceListDialog = builder.show();
|
||||
}
|
||||
|
||||
/**
|
||||
* 连接蓝牙设备
|
||||
*/
|
||||
private void connectToDevice(BluetoothDevice device) {
|
||||
showLoadingDialog();
|
||||
String deviceName = device.getName();
|
||||
if (deviceName == null || deviceName.isEmpty()) {
|
||||
deviceName = "未知设备";
|
||||
}
|
||||
ToastUtil.showShort(mContext, "正在连接: " + deviceName);
|
||||
|
||||
// TODO: 这里可以调用 DeviceBleManager 进行连接
|
||||
// DeviceBleManager bleManager = new DeviceBleManager(this);
|
||||
// bleManager.connect(device);
|
||||
|
||||
// 模拟连接成功
|
||||
String finalDeviceName = deviceName;
|
||||
new Handler().postDelayed(() -> {
|
||||
hideDialogLoading();
|
||||
ToastUtil.showShort(mContext, "连接成功: " + finalDeviceName);
|
||||
// 获取设备信息
|
||||
getDeviceInfo(device);
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取蓝牙设备信息
|
||||
*/
|
||||
private void getDeviceInfo(BluetoothDevice device) {
|
||||
String deviceName = device.getName();
|
||||
String deviceAddress = device.getAddress();
|
||||
|
||||
if (deviceName == null || deviceName.isEmpty()) {
|
||||
deviceName = "未知设备";
|
||||
}
|
||||
|
||||
ToastUtil.showShort(mContext, "设备名称: " + deviceName + "\n设备地址: " + deviceAddress);
|
||||
|
||||
// TODO: 将设备信息传递给后续业务逻辑
|
||||
// 例如跳转到下一个页面或保存设备信息
|
||||
}
|
||||
|
||||
|
||||
private void initListener() {
|
||||
@@ -334,7 +264,6 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
|
||||
|
||||
case R.id.btn_ble_scan:
|
||||
// 扫描蓝牙设备
|
||||
startBleScan();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -345,8 +274,12 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
|
||||
if (requestCode == REQUEST_ENABLE_BT) {
|
||||
if (resultCode == RESULT_OK) {
|
||||
ToastUtil.showShort(mContext, "蓝牙已开启");
|
||||
Log.e("BluetoothScan", "onActivityResult: 蓝牙已开启,开始扫描");
|
||||
bluetoothReady = true;
|
||||
startBleScan();
|
||||
} else {
|
||||
ToastUtil.showShort(mContext, "请开启蓝牙以扫描设备");
|
||||
Log.e("BluetoothScan", "onActivityResult: 用户拒绝开启蓝牙");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -367,7 +300,6 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
|
||||
if (allGranted) {
|
||||
// 初始化蓝牙适配器
|
||||
initBluetooth();
|
||||
startBleScan();
|
||||
} else {
|
||||
ToastUtil.showShort(mContext, "需要蓝牙权限才能扫描设备");
|
||||
}
|
||||
@@ -468,22 +400,9 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
if (mScanCallback != null) {
|
||||
BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner();
|
||||
scanner.stopScan(new ScanCallback() {
|
||||
@Override
|
||||
public void onScanResult(int callbackType, @NonNull ScanResult result) {
|
||||
super.onScanResult(callbackType, result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBatchScanResults(@NonNull List<ScanResult> results) {
|
||||
super.onBatchScanResults(results);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScanFailed(int errorCode) {
|
||||
super.onScanFailed(errorCode);
|
||||
}
|
||||
});
|
||||
scanner.stopScan(mScanCallback);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ public class HistoryPresenter extends BasePresenter<HistoryContract.HistoryView>
|
||||
// map.put("beginTime",mFilterStartTime);
|
||||
map.put("param[beginTime]", mFilterStartTime);
|
||||
}
|
||||
|
||||
if(!TextUtils.isEmpty(mFilterStartTime)){
|
||||
// map.put("endTime",mFilterEndTime);
|
||||
map.put("param[endTime]", mFilterEndTime);
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.ckkj.water.base.BaseFragment;
|
||||
import com.ckkj.water.custom.view.CustomRefreshHeader;
|
||||
import com.ckkj.water.databinding.IndexFragmentLayoutBinding;
|
||||
import com.ckkj.water.device.AddDeviceActivity;
|
||||
import com.ckkj.water.device.AddDeviceActivity_copy;
|
||||
import com.ckkj.water.device.DeviceControlActivity;
|
||||
import com.ckkj.water.history.entity.WateringRecord;
|
||||
import com.ckkj.water.index.adapter.DeviceAdapter;
|
||||
@@ -113,7 +114,7 @@ public class IndexFragment extends BaseFragment<IndexFragmentLayoutBinding, Inde
|
||||
if(!hasPermission){
|
||||
goTo(mContext, PermissionActivity.class,null);
|
||||
}else{
|
||||
goTo(mContext, AddDeviceActivity.class,null);
|
||||
goTo(mContext, AddDeviceActivity_copy.class,null);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user