蓝牙连接不稳定修复

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.text.TextUtils;
import android.util.Log;
import android.util.SparseArray;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
@@ -164,6 +165,7 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
.build();
List<ScanFilter> 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
@@ -179,6 +181,10 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
discoveredMacSet.add(deviceAddress);
WaterDeviceEntity bean = new WaterDeviceEntity();
ScanRecord record = result.getScanRecord();
SparseArray<byte[]> manufacturerData = record.getManufacturerSpecificData();
//设备名字
String deviceName = result.getScanRecord() != null ?
result.getScanRecord().getDeviceName() : "无名称";
@@ -194,8 +200,8 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
AnimationDrawable animationDrawable = (AnimationDrawable) ivScanAnimation.getDrawable();
if (animationDrawable.isRunning()) {
animationDrawable.stop();
viewBinding.ivScanAnimation.setVisibility(GONE);
}
viewBinding.ivScanAnimation.setVisibility(GONE);
}
}

View File

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

View File

@@ -16,10 +16,10 @@
<ImageView
android:id="@+id/img_loading"
android:layout_width="@dimen/dp_50"
android:layout_height="@dimen/dp_50"
android:layout_width="@dimen/dp_55"
android:layout_height="@dimen/dp_55"
android:layout_marginTop="@dimen/dp_3"
android:src="@mipmap/ic_launcher"
android:src="@mipmap/icon_water_loading"
android:visibility="visible"/>
<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_watering_adapter_time">Watering Time</string>
<string name="total_water_count">Total Watering Sessions</string>
<string name="week_water_count">This Week</string>
<string name="month_water_count">This Month</string>
<string name="schedule_water_count">Scheduled Sessions</string>
<string name="manual_water_count">Manual Sessions</string>
<string name="total_water_duration">Total Watering Time</string>
<string name="avg_water_duration">Average Duration</string>
<string name="total_water_count">Total</string>
<string name="week_water_count">Week</string>
<string name="month_water_count">Month</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>
<!-- Profile -->