蓝牙连接不稳定修复

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);
}