蓝牙连接不稳定修复

This commit is contained in:
fengjignqi
2026-06-11 09:23:33 +08:00
parent 2a933d09a4
commit 02acc5403d
6 changed files with 49 additions and 21 deletions

View File

@@ -18,6 +18,7 @@ import android.os.Handler;
import android.os.ParcelUuid; import android.os.ParcelUuid;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.util.SparseArray;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.Toast; import android.widget.Toast;
@@ -164,6 +165,7 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
.build(); .build();
List<ScanFilter> filters = new ArrayList<>(); List<ScanFilter> filters = new ArrayList<>();
filters.add(new ScanFilter.Builder().setServiceUuid(parcelUuid).build()); filters.add(new ScanFilter.Builder().setServiceUuid(parcelUuid).build());
// filters.add(new ScanFilter.Builder().setDeviceName("PROV_Water_01").build());
Log.e("TEST", "开始扫描"); Log.e("TEST", "开始扫描");
mScanCallback = new ScanCallback() { mScanCallback = new ScanCallback() {
@Override @Override
@@ -179,6 +181,10 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
discoveredMacSet.add(deviceAddress); discoveredMacSet.add(deviceAddress);
WaterDeviceEntity bean = new WaterDeviceEntity(); WaterDeviceEntity bean = new WaterDeviceEntity();
ScanRecord record = result.getScanRecord();
SparseArray<byte[]> manufacturerData = record.getManufacturerSpecificData();
//设备名字 //设备名字
String deviceName = result.getScanRecord() != null ? String deviceName = result.getScanRecord() != null ?
result.getScanRecord().getDeviceName() : "无名称"; result.getScanRecord().getDeviceName() : "无名称";
@@ -194,8 +200,8 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
AnimationDrawable animationDrawable = (AnimationDrawable) ivScanAnimation.getDrawable(); AnimationDrawable animationDrawable = (AnimationDrawable) ivScanAnimation.getDrawable();
if (animationDrawable.isRunning()) { if (animationDrawable.isRunning()) {
animationDrawable.stop(); animationDrawable.stop();
viewBinding.ivScanAnimation.setVisibility(GONE);
} }
viewBinding.ivScanAnimation.setVisibility(GONE);
} }
} }

View File

@@ -1,6 +1,7 @@
package com.ckkj.water.device; package com.ckkj.water.device;
import static android.view.View.GONE; import static android.view.View.GONE;
import static android.view.View.INVISIBLE;
import static android.view.View.VISIBLE; import static android.view.View.VISIBLE;
import android.graphics.drawable.AnimationDrawable; import android.graphics.drawable.AnimationDrawable;
@@ -72,20 +73,33 @@ public class DeviceConnectActivity extends BaseActivity<DeviceConnectLayoutBindi
} }
private void startConnectAnimation() { private void startConnectAnimation() {
viewBinding.tvConnectProgress.setText("正在配置网络");
if (animationDrawable != null && animationDrawable.isRunning()) {
animationDrawable.stop();
}
viewBinding.ivConnectAnimation.setImageResource(R.drawable.anim_connect_device); viewBinding.ivConnectAnimation.setImageResource(R.drawable.anim_connect_device);
animationDrawable = (AnimationDrawable) viewBinding.ivConnectAnimation.getDrawable(); animationDrawable = (AnimationDrawable) viewBinding.ivConnectAnimation.getDrawable();
if (animationDrawable != null) { if (animationDrawable != null) {
animationDrawable.start(); animationDrawable.start();
handler.postDelayed(() -> {
if (animationDrawable != null && animationDrawable.isRunning()) {
animationDrawable.stop();
}
viewBinding.linearConnectIng.setVisibility(GONE);
viewBinding.linearSuccess.setVisibility(VISIBLE);
}, ANIMATION_DURATION);
} }
viewBinding.linearConnectIng.setVisibility(VISIBLE);
viewBinding.linearSuccess.setVisibility(GONE);
} }
private void stopConnectAnimation() {
handler.removeCallbacksAndMessages(null);
if (animationDrawable != null) {
animationDrawable.stop();
animationDrawable = null;
}
viewBinding.linearConnectIng.setVisibility(GONE);
viewBinding.linearSuccess.setVisibility(VISIBLE);
}
private void initEspProvision() { private void initEspProvision() {
espProvisionManager = EspProvisionManager.init(mContext).setCallback(new ProvisionCallback() { espProvisionManager = EspProvisionManager.init(mContext).setCallback(new ProvisionCallback() {
@Override @Override
@@ -106,7 +120,10 @@ public class DeviceConnectActivity extends BaseActivity<DeviceConnectLayoutBindi
@Override @Override
public void onProvisioning(int progress) { public void onProvisioning(int progress) {
Log.i("TEST", "DeviceConnectActivity===== WIFI连接进度 == " + progress); Log.i("TEST", "DeviceConnectActivity===== WIFI连接进度 == " + progress);
mProgressLoadingDialog.setProgress(progress); viewBinding.tvConnectProgress.setText("正在配置网络" + progress + "%");
if(progress == 100){
stopConnectAnimation();
}
} }
@Override @Override
@@ -116,7 +133,6 @@ public class DeviceConnectActivity extends BaseActivity<DeviceConnectLayoutBindi
handler.postDelayed(new Runnable() { handler.postDelayed(new Runnable() {
@Override @Override
public void run() { public void run() {
hideDialogLoading();
goTo(mContext, DeviceReNameActivity.class, null); goTo(mContext, DeviceReNameActivity.class, null);
finish(); finish();
} }
@@ -197,7 +213,6 @@ public class DeviceConnectActivity extends BaseActivity<DeviceConnectLayoutBindi
return; return;
} }
provisioningStarted = true; provisioningStarted = true;
showProgressLoadingDialog(0);
espProvisionManager.provisionWifi(mWifiName, mWifiPassword); espProvisionManager.provisionWifi(mWifiName, mWifiPassword);
} }

View File

@@ -16,10 +16,10 @@
<ImageView <ImageView
android:id="@+id/img_loading" android:id="@+id/img_loading"
android:layout_width="@dimen/dp_50" android:layout_width="@dimen/dp_55"
android:layout_height="@dimen/dp_50" android:layout_height="@dimen/dp_55"
android:layout_marginTop="@dimen/dp_3" android:layout_marginTop="@dimen/dp_3"
android:src="@mipmap/ic_launcher" android:src="@mipmap/icon_water_loading"
android:visibility="visible"/> android:visibility="visible"/>
<TextView <TextView

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -147,13 +147,20 @@
<string name="history_filter_type_toast">Select a trigger type</string> <string name="history_filter_type_toast">Select a trigger type</string>
<string name="history_watering_adapter_time">Watering Time</string> <string name="history_watering_adapter_time">Watering Time</string>
<string name="total_water_count">Total Watering Sessions</string> <string name="total_water_count">Total</string>
<string name="week_water_count">This Week</string>
<string name="month_water_count">This Month</string> <string name="week_water_count">Week</string>
<string name="schedule_water_count">Scheduled Sessions</string>
<string name="manual_water_count">Manual Sessions</string> <string name="month_water_count">Month</string>
<string name="total_water_duration">Total Watering Time</string>
<string name="avg_water_duration">Average Duration</string> <string name="schedule_water_count">Scheduled</string>
<string name="manual_water_count">Manual</string>
<string name="total_water_duration">Duration</string>
<string name="avg_water_duration">Average</string>
<string name="unit_times">times</string> <string name="unit_times">times</string>
<!-- Profile --> <!-- Profile -->