From 5a72fd98af1f0bbd457d7dbddd0c1f5b3066c713 Mon Sep 17 00:00:00 2001
From: fengjignqi <15192412330@163.com>
Date: Fri, 3 Jul 2026 11:42:04 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/src/main/AndroidManifest.xml | 4 +-
.../ckkj/water/device/AddDeviceActivity.java | 306 ++++++++++--
.../water/device/AddDeviceActivity_copy.java | 468 ------------------
.../water/device/AddDeviceActivity_cpoy2.java | 218 ++++++++
.../com/ckkj/water/index/IndexFragment.java | 7 +-
5 files changed, 499 insertions(+), 504 deletions(-)
delete mode 100644 app/src/main/java/com/ckkj/water/device/AddDeviceActivity_copy.java
create mode 100644 app/src/main/java/com/ckkj/water/device/AddDeviceActivity_cpoy2.java
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e59a16d..64a63e2 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -168,11 +168,11 @@
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize"/>
implements DeviceContract.DeviceView, EasyPermissions.PermissionCallbacks {
+
+ // 蓝牙相关
+ private BluetoothAdapter bluetoothAdapter;
+ private static final int REQUEST_ENABLE_BT = 1001;
+ private static final int REQUEST_BLUETOOTH_PERMISSION = 1002;
+ private List discoveredDevices = new ArrayList<>();
+ private AlertDialog deviceListDialog;
+ private String mUuid = "1775244d-6b43-439b-877c-060f2d9bed07";
+ private ScanCallback mScanCallback;
+ private boolean bluetoothReady = false;
+ private BleScanDeviceAdapter bleAdapter;
+ private List mDeviceList = new ArrayList<>();
+ private Set discoveredMacSet = new HashSet<>();
+ private WaterDeviceManager waterDeviceManager;
+
@Override
public DevicePresenter createPresenter() {
return new DevicePresenter(new DeviceImpl());
@@ -49,6 +89,7 @@ public class AddDeviceActivity extends BaseActivity filters = new ArrayList<>();
+ filters.add(new ScanFilter.Builder().setServiceUuid(parcelUuid).build());
+// filters.add(new ScanFilter.Builder().setDeviceName("PROV_Water_01").build());
+ Log.e("TEST", "开始扫描");
+ mScanCallback = new ScanCallback() {
+ @Override
+ public void onScanResult(int callbackType, @NonNull ScanResult result) {
+ super.onScanResult(callbackType, result);
+ //Mac地址
+ String deviceAddress = result.getDevice().getAddress();
+
+ // 去重:已存在的设备不再添加
+ if (discoveredMacSet.contains(deviceAddress)) {
+ return;
+ }
+ discoveredMacSet.add(deviceAddress);
+
+ WaterDeviceEntity bean = new WaterDeviceEntity();
+ ScanRecord record = result.getScanRecord();
+
+ SparseArray manufacturerData = record.getManufacturerSpecificData();
+
+ //设备名字
+ String deviceName = result.getScanRecord() != null ?
+ result.getScanRecord().getDeviceName() : "无名称";
+ bean.setDeviceName(deviceName);
+ bean.setMacAddress(deviceAddress);
+ mDeviceList.add(bean);
+ bleAdapter.notifyItemInserted(mDeviceList.size() - 1);
+ if(bleAdapter.getItemCount() != 0){
+ viewBinding.rvDevices.setVisibility(VISIBLE);
+ // 停止帧动画
+ ImageView ivScanAnimation = viewBinding.ivScanAnimation;
+ if (ivScanAnimation.getDrawable() instanceof AnimationDrawable) {
+ AnimationDrawable animationDrawable = (AnimationDrawable) ivScanAnimation.getDrawable();
+ if (animationDrawable.isRunning()) {
+ animationDrawable.stop();
+ }
+ viewBinding.ivScanAnimation.setVisibility(GONE);
+ }
+ }
+
+ }
+
+ @Override
+ public void onBatchScanResults(@NonNull List results) {
+ super.onBatchScanResults(results);
+ Log.e("TEST", "批量结果: " + results.size() + " 个设备");
+ }
+
+ @Override
+ public void onScanFailed(int errorCode) {
+ super.onScanFailed(errorCode);
+ Log.e("TEST", "扫描失败: " + errorCode);
+ ToastUtil.showShort(mContext, "扫描失败,错误码: " + errorCode);
+ }
+ };
+ scanner.startScan(filters, settings, mScanCallback);
+ }
+
+ /**
+ * 停止 BLE 扫描
+ */
+ private void stopBleScan() {
+ if (mScanCallback != null) {
+ BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner();
+ scanner.stopScan(mScanCallback);
+ Log.e("TEST", "停止扫描");
+ }
+ }
+
+
+
+ /**
+ * 初始化蓝牙适配器
+ */
+ private void initBluetooth() {
+ BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
+ if (bluetoothManager != null) {
+ bluetoothAdapter = bluetoothManager.getAdapter();
+ }
+
+ if (bluetoothAdapter == null) {
+ ToastUtil.showShort(mContext, "设备不支持蓝牙");
+ return;
+ }
+
+ try {
+ // 检查蓝牙是否开启
+ if (!bluetoothAdapter.isEnabled()) {
+ Log.e("TEST", "initBluetooth: 蓝牙未开启,请求开启");
+ Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
+ startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
+ } else {
+ bluetoothReady = true;
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
+ * 检查蓝牙权限
+ */
+ private boolean checkBluetoothPermissions() {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+
+ String[] readPermission = new String[]{
+ Manifest.permission.BLUETOOTH_SCAN,
+ Manifest.permission.BLUETOOTH_CONNECT,
+ Manifest.permission.ACCESS_FINE_LOCATION
+ };
+ if (!hasRecordPermission(readPermission)) {
+ // 没有权限,只在ACTION_DOWN时去申请
+ getMorePermissionRequst(readPermission,"蓝牙扫描权限申请",
+ "智能浇水需要您的授权,获取蓝牙权限添加设备",REQUEST_EVENT_CODE_10003);
+ return false;
+ }
+ } else {
+ // Android 12 以下需要位置权限才能扫描蓝牙
+ if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
+ != PackageManager.PERMISSION_GRANTED) {
+
+ requestPermissions(new String[]{
+ Manifest.permission.ACCESS_FINE_LOCATION
+ }, REQUEST_BLUETOOTH_PERMISSION);
+ return false;
+ }
+ }
+ return true;
+ }
+
+
private void setClick(View view) {
view.setOnClickListener(this::onClick);
}
@@ -95,12 +300,6 @@ public class AddDeviceActivity extends BaseActivity perms) {
hidePermissionDialog();
if (requestCode == REQUEST_EVENT_CODE_10001) {
scanQrcode();
+ }else if(requestCode == REQUEST_EVENT_CODE_10002){
+
}
}
@@ -215,4 +452,17 @@ public class AddDeviceActivity extends BaseActivity
- implements DeviceContract.DeviceView, EasyPermissions.PermissionCallbacks {
-
- // 蓝牙相关
- private BluetoothAdapter bluetoothAdapter;
- private static final int REQUEST_ENABLE_BT = 1001;
- private static final int REQUEST_BLUETOOTH_PERMISSION = 1002;
- private List discoveredDevices = new ArrayList<>();
- private AlertDialog deviceListDialog;
- private String mUuid = "1775244d-6b43-439b-877c-060f2d9bed07";
- private ScanCallback mScanCallback;
- private boolean bluetoothReady = false;
- private BleScanDeviceAdapter bleAdapter;
- private List mDeviceList = new ArrayList<>();
- private Set discoveredMacSet = new HashSet<>();
- private WaterDeviceManager waterDeviceManager;
-
- @Override
- public DevicePresenter createPresenter() {
- return new DevicePresenter(new DeviceImpl());
- }
-
-
- @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) // 设置状态栏颜色
- .statusBarDarkFont(ThemeManager.isAppThemeLight(mContext)) // 设置状态栏字体为黑色
- .titleBar(viewBinding.rlTitle)
- .init();
- viewBinding.includedTitle.tvTitle.setText(R.string.add_device_title);
- viewBinding.rvDevices.addItemDecoration(new GridSpacingItemDecoration(4, 10, true));
- bleAdapter = new BleScanDeviceAdapter(mContext,R.layout.scan_ble_device_item,mDeviceList);
- viewBinding.rvDevices.setAdapter(bleAdapter);
-
- if(checkBluetoothPermissions()){
- // 初始化蓝牙适配器
- initBluetooth();
- if (bluetoothReady) {
- startBleScan();
- }
- }
-
-
- // 启动帧动画
- ImageView ivScanAnimation = viewBinding.ivScanAnimation;
- if (ivScanAnimation.getDrawable() instanceof AnimationDrawable) {
- AnimationDrawable animationDrawable = (AnimationDrawable) ivScanAnimation.getDrawable();
- animationDrawable.start();
- }
- initListener();
-
- }
-
- /**
- * 初始化监听g
- */
- private void initListener() {
- setClick(viewBinding.includedTitle.imgBack);
- setClick(viewBinding.tvScanAdd);
- setClick(viewBinding.btnBleScan);
-
- if(bleAdapter != null){
- bleAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
- @Override
- public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
- WaterDeviceEntity device = mDeviceList.get(position);
- String deviceName = TextUtils.isEmpty(device.getDeviceName()) ?
- "未知设备" : device.getDeviceName();
- // 停止扫描
- stopBleScan();
- Bundle bundle = new Bundle();
- bundle.putInt(ConstantUtil.ACTIVITY_NAVIGATE_FLAG,100);
- bundle.putSerializable("ble_device_entity",mDeviceList.get(position));
- goTo(mContext, SelectWifiActivity.class,bundle);
- }
- });
- }
- }
-
- /**
- * 开始 BLE 扫描
- */
- private void startBleScan() {
- BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner();
- UUID SERVICE_UUID = UUID.fromString(mUuid);//1775244d-6b43-439b-877c-060f2d9bed07
- ParcelUuid parcelUuid = new ParcelUuid(SERVICE_UUID);
- ScanSettings settings = new ScanSettings.Builder()
- .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
- .setReportDelay(0)
- .build();
- List filters = new ArrayList<>();
- filters.add(new ScanFilter.Builder().setServiceUuid(parcelUuid).build());
-// filters.add(new ScanFilter.Builder().setDeviceName("PROV_Water_01").build());
- Log.e("TEST", "开始扫描");
- mScanCallback = new ScanCallback() {
- @Override
- public void onScanResult(int callbackType, @NonNull ScanResult result) {
- super.onScanResult(callbackType, result);
- //Mac地址
- String deviceAddress = result.getDevice().getAddress();
-
- // 去重:已存在的设备不再添加
- if (discoveredMacSet.contains(deviceAddress)) {
- return;
- }
- discoveredMacSet.add(deviceAddress);
-
- WaterDeviceEntity bean = new WaterDeviceEntity();
- ScanRecord record = result.getScanRecord();
-
- SparseArray manufacturerData = record.getManufacturerSpecificData();
-
- //设备名字
- String deviceName = result.getScanRecord() != null ?
- result.getScanRecord().getDeviceName() : "无名称";
- bean.setDeviceName(deviceName);
- bean.setMacAddress(deviceAddress);
- mDeviceList.add(bean);
- bleAdapter.notifyItemInserted(mDeviceList.size() - 1);
- if(bleAdapter.getItemCount() != 0){
- viewBinding.rvDevices.setVisibility(VISIBLE);
- // 停止帧动画
- ImageView ivScanAnimation = viewBinding.ivScanAnimation;
- if (ivScanAnimation.getDrawable() instanceof AnimationDrawable) {
- AnimationDrawable animationDrawable = (AnimationDrawable) ivScanAnimation.getDrawable();
- if (animationDrawable.isRunning()) {
- animationDrawable.stop();
- }
- viewBinding.ivScanAnimation.setVisibility(GONE);
- }
- }
-
- }
-
- @Override
- public void onBatchScanResults(@NonNull List results) {
- super.onBatchScanResults(results);
- Log.e("TEST", "批量结果: " + results.size() + " 个设备");
- }
-
- @Override
- public void onScanFailed(int errorCode) {
- super.onScanFailed(errorCode);
- Log.e("TEST", "扫描失败: " + errorCode);
- ToastUtil.showShort(mContext, "扫描失败,错误码: " + errorCode);
- }
- };
- scanner.startScan(filters, settings, mScanCallback);
- }
-
- /**
- * 停止 BLE 扫描
- */
- private void stopBleScan() {
- if (mScanCallback != null) {
- BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner();
- scanner.stopScan(mScanCallback);
- Log.e("TEST", "停止扫描");
- }
- }
-
-
-
- /**
- * 初始化蓝牙适配器
- */
- private void initBluetooth() {
- BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
- if (bluetoothManager != null) {
- bluetoothAdapter = bluetoothManager.getAdapter();
- }
-
- if (bluetoothAdapter == null) {
- ToastUtil.showShort(mContext, "设备不支持蓝牙");
- return;
- }
-
- try {
- // 检查蓝牙是否开启
- if (!bluetoothAdapter.isEnabled()) {
- Log.e("TEST", "initBluetooth: 蓝牙未开启,请求开启");
- Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
- startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
- } else {
- bluetoothReady = true;
- }
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
-
- /**
- * 检查蓝牙权限
- */
- private boolean checkBluetoothPermissions() {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
-
- String[] readPermission = new String[]{
- Manifest.permission.BLUETOOTH_SCAN,
- Manifest.permission.BLUETOOTH_CONNECT,
- Manifest.permission.ACCESS_FINE_LOCATION
- };
- if (!hasRecordPermission(readPermission)) {
- // 没有权限,只在ACTION_DOWN时去申请
- getMorePermissionRequst(readPermission,"蓝牙扫描权限申请",
- "智能浇水需要您的授权,获取蓝牙权限添加设备",REQUEST_EVENT_CODE_10003);
- return false;
- }
- } else {
- // Android 12 以下需要位置权限才能扫描蓝牙
- if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
- != PackageManager.PERMISSION_GRANTED) {
-
- requestPermissions(new String[]{
- Manifest.permission.ACCESS_FINE_LOCATION
- }, REQUEST_BLUETOOTH_PERMISSION);
- return false;
- }
- }
- return true;
- }
-
-
- private void setClick(View view) {
- view.setOnClickListener(this::onClick);
- }
-
- public void onClick(View v){
- switch (v.getId()){
- case R.id.img_back:
- finish();
- break;
-
- case R.id.tv_scan_add:
- //检测有无相机权限
- String readPermission = Manifest.permission.CAMERA;
- if(!hasRecordPermission(readPermission)){
- getPermissionRequst(readPermission,"权限申请",
- "智能浇水需要您的授权访问相机,并使用扫一扫",REQUEST_EVENT_CODE_10001);
- }else{
- scanQrcode();
- }
- break;
-
- case R.id.btn_ble_scan:
- // 扫描蓝牙设备
- break;
- }
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- 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: 用户拒绝开启蓝牙");
- }
- }
- }
-
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull @NotNull String[] permissions, @NonNull @NotNull int[] grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
- hidePermissionDialog();
- if (requestCode == REQUEST_BLUETOOTH_PERMISSION) {
- boolean allGranted = true;
- for (int result : grantResults) {
- if (result != PackageManager.PERMISSION_GRANTED) {
- allGranted = false;
- break;
- }
- }
- if (allGranted) {
- // 初始化蓝牙适配器
- initBluetooth();
- } else {
- ToastUtil.showShort(mContext, "需要蓝牙权限才能扫描设备");
- }
- }
- }
-
- private void scanQrcode() {
- //默认扫描
- MNScanManager.startScan(mContext, new MNScanCallback() {
- @Override
- public void onActivityResult(int resultCode, Intent data) {
- switch (resultCode) {
- case MNScanManager.RESULT_SUCCESS:
- ArrayList results = data.getStringArrayListExtra(MNScanManager.INTENT_KEY_RESULT_SUCCESS);
- if(results != null){
- ToastUtil.showShort(mContext,results.get(0).toString());
- }
- break;
- case MNScanManager.RESULT_FAIL:
- String resultError = data.getStringExtra(MNScanManager.INTENT_KEY_RESULT_ERROR);
- break;
- case MNScanManager.RESULT_CANCLE:
- ToastUtil.showShort(mContext,"取消扫码");
- break;
- }
- }
- });
- }
-
-
- @Override
- protected void onPause() {
- super.onPause();
- // 停止帧动画
- ImageView ivScanAnimation = viewBinding.ivScanAnimation;
- if (ivScanAnimation.getDrawable() instanceof AnimationDrawable) {
- AnimationDrawable animationDrawable = (AnimationDrawable) ivScanAnimation.getDrawable();
- if (animationDrawable.isRunning()) {
- animationDrawable.stop();
- }
- }
- }
-
- @Override
- public int getLayoutResId(Bundle savedInstanceState) {
- return 0;
- }
-
- @Override
- public void showError(String message) {
-
- }
-
- @Override
- public void logOut(BaseBean bean) {
-
-
- }
-
- @Override
- public void onPermissionsGranted(int requestCode, @NonNull List perms) {
- hidePermissionDialog();
- if (requestCode == REQUEST_EVENT_CODE_10001) {
- scanQrcode();
- }else if(requestCode == REQUEST_EVENT_CODE_10002){
-
- }
- }
-
- @Override
- public void onPermissionsDenied(int requestCode, @NonNull List perms) {
-
- }
-
- @Override
- public void addDeviceSuccess(WaterDeviceEntity bean) {
-
- }
-
- @Override
- public void getDeviceDetailInfo(WaterDeviceEntity bean) {
-
- }
-
- @Override
- public void editDeviceInfoSuccess(BaseBean bean) {
-
- }
-
- @Override
- public void deleteDeviceSuccess(BaseBean bean) {
-
- }
-
- @Override
- public void turnOnOffDeviceSuccess(BaseBean bean, String status) {
-
- }
-
- @Override
- public void queryDeviceBindStatusSuccess(WaterDeviceEntity bean) {
-
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- // 停止扫描
- stopBleScan();
- // 断开蓝牙连接
- if (waterDeviceManager != null) {
- waterDeviceManager.disconnect().enqueue();
- waterDeviceManager.close();
- waterDeviceManager = null;
- }
- }
-}
diff --git a/app/src/main/java/com/ckkj/water/device/AddDeviceActivity_cpoy2.java b/app/src/main/java/com/ckkj/water/device/AddDeviceActivity_cpoy2.java
new file mode 100644
index 0000000..0243775
--- /dev/null
+++ b/app/src/main/java/com/ckkj/water/device/AddDeviceActivity_cpoy2.java
@@ -0,0 +1,218 @@
+package com.ckkj.water.device;
+
+import static android.view.View.GONE;
+
+import android.Manifest;
+import android.content.Intent;
+import android.graphics.drawable.AnimationDrawable;
+import android.os.Bundle;
+import android.os.Handler;
+import android.view.View;
+import android.widget.ImageView;
+
+import androidx.annotation.NonNull;
+
+import com.ckkj.water.ConstantUtil;
+import com.ckkj.water.R;
+import com.ckkj.water.base.BaseActivity;
+import com.ckkj.water.databinding.AddDeviceLayoutBinding;
+import com.ckkj.water.device.mvp.DeviceContract;
+import com.ckkj.water.device.mvp.DeviceImpl;
+import com.ckkj.water.device.mvp.DevicePresenter;
+import com.ckkj.water.index.entity.WaterDeviceEntity;
+import com.ckkj.water.network.BaseBean;
+import com.ckkj.water.utils.manager.ActivityManager;
+import com.ckkj.water.utils.manager.ThemeManager;
+import com.ckkj.water.utils.show.ToastUtil;
+import com.gyf.immersionbar.ImmersionBar;
+import com.maning.mlkitscanner.scan.MNScanManager;
+import com.maning.mlkitscanner.scan.callback.act.MNScanCallback;
+
+import org.jetbrains.annotations.NotNull;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import pub.devrel.easypermissions.EasyPermissions;
+
+/**
+ * 添加设备页面
+ */
+public class AddDeviceActivity_cpoy2 extends BaseActivity
+ implements DeviceContract.DeviceView, EasyPermissions.PermissionCallbacks {
+ @Override
+ public DevicePresenter createPresenter() {
+ return new DevicePresenter(new DeviceImpl());
+ }
+
+
+ @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) // 设置状态栏颜色
+ .statusBarDarkFont(ThemeManager.isAppThemeLight(mContext)) // 设置状态栏字体为黑色
+ .titleBar(viewBinding.rlTitle)
+ .init();
+ viewBinding.includedTitle.tvTitle.setText(R.string.add_device_title);
+ // 启动帧动画
+ ImageView ivScanAnimation = viewBinding.ivScanAnimation;
+ if (ivScanAnimation.getDrawable() instanceof AnimationDrawable) {
+ AnimationDrawable animationDrawable = (AnimationDrawable) ivScanAnimation.getDrawable();
+ animationDrawable.start();
+ }
+ new Handler().postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ // 停止帧动画
+ ImageView ivScanAnimation = viewBinding.ivScanAnimation;
+ if (ivScanAnimation.getDrawable() instanceof AnimationDrawable) {
+ AnimationDrawable animationDrawable = (AnimationDrawable) ivScanAnimation.getDrawable();
+ if (animationDrawable.isRunning()) {
+ animationDrawable.stop();
+ viewBinding.ivScanAnimation.setVisibility(GONE);
+ }
+ }
+ }
+ },3000);
+ initListener();
+ }
+
+
+ private void initListener() {
+ setClick(viewBinding.includedTitle.imgBack);
+ setClick(viewBinding.tvScanAdd);
+ }
+
+ private void setClick(View view) {
+ view.setOnClickListener(this::onClick);
+ }
+
+ public void onClick(View v){
+ switch (v.getId()){
+ case R.id.img_back:
+ finish();
+ break;
+
+ case R.id.img_device_item:
+ Bundle bundle = new Bundle();
+ bundle.putInt(ConstantUtil.ACTIVITY_NAVIGATE_FLAG,100);
+ goTo(mContext, SelectWifiActivity.class,bundle);
+ break;
+
+ case R.id.tv_scan_add:
+ //检测有无相机权限
+ String readPermission = Manifest.permission.CAMERA;
+ if(!hasRecordPermission(readPermission)){
+ getPermissionRequst(readPermission,"权限申请",
+ "智能浇水需要您的授权访问相机,并使用扫一扫",REQUEST_EVENT_CODE_10001);
+ }else{
+ scanQrcode();
+ }
+ break;
+ }
+ }
+
+ private void scanQrcode() {
+ //默认扫描
+ MNScanManager.startScan(mContext, new MNScanCallback() {
+ @Override
+ public void onActivityResult(int resultCode, Intent data) {
+ switch (resultCode) {
+ case MNScanManager.RESULT_SUCCESS:
+ ArrayList results = data.getStringArrayListExtra(MNScanManager.INTENT_KEY_RESULT_SUCCESS);
+ if(results != null){
+ ToastUtil.showShort(mContext,results.get(0).toString());
+ }
+ break;
+ case MNScanManager.RESULT_FAIL:
+ String resultError = data.getStringExtra(MNScanManager.INTENT_KEY_RESULT_ERROR);
+ break;
+ case MNScanManager.RESULT_CANCLE:
+ ToastUtil.showShort(mContext,"取消扫码");
+ break;
+ }
+ }
+ });
+ }
+
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ // 停止帧动画
+ ImageView ivScanAnimation = viewBinding.ivScanAnimation;
+ if (ivScanAnimation.getDrawable() instanceof AnimationDrawable) {
+ AnimationDrawable animationDrawable = (AnimationDrawable) ivScanAnimation.getDrawable();
+ if (animationDrawable.isRunning()) {
+ animationDrawable.stop();
+ }
+ }
+ }
+
+ @Override
+ public int getLayoutResId(Bundle savedInstanceState) {
+ return 0;
+ }
+
+ @Override
+ public void showError(String message) {
+
+ }
+
+ @Override
+ public void logOut(BaseBean bean) {
+
+
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull @NotNull String[] permissions, @NonNull @NotNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+ EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
+ }
+
+ @Override
+ public void onPermissionsGranted(int requestCode, @NonNull List perms) {
+ hidePermissionDialog();
+ if (requestCode == REQUEST_EVENT_CODE_10001) {
+ scanQrcode();
+ }
+ }
+
+ @Override
+ public void onPermissionsDenied(int requestCode, @NonNull List perms) {
+
+ }
+
+ @Override
+ public void addDeviceSuccess(WaterDeviceEntity bean) {
+
+ }
+
+ @Override
+ public void getDeviceDetailInfo(WaterDeviceEntity bean) {
+
+ }
+
+ @Override
+ public void editDeviceInfoSuccess(BaseBean bean) {
+
+ }
+
+ @Override
+ public void deleteDeviceSuccess(BaseBean bean) {
+
+ }
+
+ @Override
+ public void turnOnOffDeviceSuccess(BaseBean bean, String status) {
+
+ }
+
+ @Override
+ public void queryDeviceBindStatusSuccess(WaterDeviceEntity bean) {
+
+ }
+}
diff --git a/app/src/main/java/com/ckkj/water/index/IndexFragment.java b/app/src/main/java/com/ckkj/water/index/IndexFragment.java
index 954e06b..be46d30 100644
--- a/app/src/main/java/com/ckkj/water/index/IndexFragment.java
+++ b/app/src/main/java/com/ckkj/water/index/IndexFragment.java
@@ -8,7 +8,6 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
-import android.os.Handler;
import android.text.TextUtils;
import android.view.View;
@@ -23,11 +22,9 @@ import com.ckkj.water.custom.view.CustomRefreshHeader;
import com.ckkj.water.databinding.IndexFragmentLayoutBinding;
import com.ckkj.water.ConstantUtil;
import com.ckkj.water.device.AddDeviceActivity;
-import com.ckkj.water.device.AddDeviceActivity_copy;
import com.ckkj.water.device.DeviceControlActivity;
import com.ckkj.water.device.DeviceReNameActivity;
import com.ckkj.water.device.SelectWifiActivity;
-import com.ckkj.water.history.entity.WateringRecord;
import com.ckkj.water.index.adapter.DeviceAdapter;
import com.ckkj.water.index.entity.WaterDeviceEntity;
import com.ckkj.water.index.mvp.IndexContract;
@@ -35,9 +32,7 @@ import com.ckkj.water.index.mvp.IndexImpl;
import com.ckkj.water.index.mvp.IndexPresenter;
import com.ckkj.water.network.BaseBean;
import com.ckkj.water.permission.PermissionActivity;
-import com.ckkj.water.plan.entity.WaterPlanWeekEntity;
import com.ckkj.water.utils.show.ToastUtil;
-import com.google.gson.Gson;
import com.maning.mlkitscanner.scan.MNScanManager;
import com.maning.mlkitscanner.scan.callback.act.MNScanCallback;
import com.scwang.smart.refresh.footer.ClassicsFooter;
@@ -141,7 +136,7 @@ public class IndexFragment extends BaseFragment