显示附近蓝牙设备
This commit is contained in:
@@ -75,7 +75,6 @@ public class AddDeviceActivity extends BaseActivity<AddDeviceLayoutBinding, Devi
|
|||||||
if (animationDrawable.isRunning()) {
|
if (animationDrawable.isRunning()) {
|
||||||
animationDrawable.stop();
|
animationDrawable.stop();
|
||||||
viewBinding.ivScanAnimation.setVisibility(GONE);
|
viewBinding.ivScanAnimation.setVisibility(GONE);
|
||||||
viewBinding.imgDeviceItem.setVisibility(VISIBLE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -87,7 +86,6 @@ public class AddDeviceActivity extends BaseActivity<AddDeviceLayoutBinding, Devi
|
|||||||
private void initListener() {
|
private void initListener() {
|
||||||
setClick(viewBinding.includedTitle.imgBack);
|
setClick(viewBinding.includedTitle.imgBack);
|
||||||
setClick(viewBinding.tvScanAdd);
|
setClick(viewBinding.tvScanAdd);
|
||||||
setClick(viewBinding.imgDeviceItem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setClick(View view) {
|
private void setClick(View view) {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import android.os.Build;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.ParcelUuid;
|
import android.os.ParcelUuid;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
@@ -25,6 +26,7 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
|
|
||||||
|
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||||
import com.ckkj.water.BuildConfig;
|
import com.ckkj.water.BuildConfig;
|
||||||
import com.ckkj.water.ConstantUtil;
|
import com.ckkj.water.ConstantUtil;
|
||||||
import com.ckkj.water.R;
|
import com.ckkj.water.R;
|
||||||
@@ -47,6 +49,7 @@ import com.maning.mlkitscanner.scan.callback.act.MNScanCallback;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -76,6 +79,7 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
|
|||||||
private boolean bluetoothReady = false;
|
private boolean bluetoothReady = false;
|
||||||
private BleScanDeviceAdapter bleAdapter;
|
private BleScanDeviceAdapter bleAdapter;
|
||||||
private List<WaterDeviceEntity> mDeviceList = new ArrayList<>();
|
private List<WaterDeviceEntity> mDeviceList = new ArrayList<>();
|
||||||
|
private Set<String> discoveredMacSet = new HashSet<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DevicePresenter createPresenter() {
|
public DevicePresenter createPresenter() {
|
||||||
@@ -148,17 +152,26 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
|
|||||||
@Override
|
@Override
|
||||||
public void onScanResult(int callbackType, @NonNull ScanResult result) {
|
public void onScanResult(int callbackType, @NonNull ScanResult result) {
|
||||||
super.onScanResult(callbackType, result);
|
super.onScanResult(callbackType, result);
|
||||||
|
//Mac地址
|
||||||
|
String deviceAddress = result.getDevice().getAddress();
|
||||||
|
// 去重:已存在的设备不再添加
|
||||||
|
if (discoveredMacSet.contains(deviceAddress)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
discoveredMacSet.add(deviceAddress);
|
||||||
|
|
||||||
WaterDeviceEntity bean = new WaterDeviceEntity();
|
WaterDeviceEntity bean = new WaterDeviceEntity();
|
||||||
//设备名字
|
//设备名字
|
||||||
String deviceName = result.getScanRecord() != null ?
|
String deviceName = result.getScanRecord() != null ?
|
||||||
result.getScanRecord().getDeviceName() : "无名称";
|
result.getScanRecord().getDeviceName() : "无名称";
|
||||||
//Mac地址
|
|
||||||
String deviceAddress = result.getDevice().getAddress();
|
|
||||||
|
|
||||||
bean.setDeviceName(deviceName);
|
bean.setDeviceName(deviceName);
|
||||||
bean.setMacAddress(deviceAddress);
|
bean.setMacAddress(deviceAddress);
|
||||||
mDeviceList.add(bean);
|
mDeviceList.add(bean);
|
||||||
bleAdapter.notifyItemInserted(mDeviceList.size() - 1);
|
bleAdapter.notifyItemInserted(mDeviceList.size() - 1);
|
||||||
|
if(bleAdapter.getItemCount() != 0){
|
||||||
|
viewBinding.rvDevices.setVisibility(VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -242,6 +255,17 @@ public class AddDeviceActivity_copy extends BaseActivity<AddDeviceLayoutBinding,
|
|||||||
setClick(viewBinding.includedTitle.imgBack);
|
setClick(viewBinding.includedTitle.imgBack);
|
||||||
setClick(viewBinding.tvScanAdd);
|
setClick(viewBinding.tvScanAdd);
|
||||||
setClick(viewBinding.btnBleScan);
|
setClick(viewBinding.btnBleScan);
|
||||||
|
|
||||||
|
if(bleAdapter != null){
|
||||||
|
bleAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
|
||||||
|
ToastUtil.showShort(mContext, TextUtils.isEmpty(mDeviceList.get(position).getDeviceName()) ?
|
||||||
|
"未知设备" : mDeviceList.get(position).getDeviceName());
|
||||||
|
//TODO 准备连接设备,方案未定
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setClick(View view) {
|
private void setClick(View view) {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.ckkj.water.device.adapter;
|
package com.ckkj.water.device.adapter;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.text.TextUtils;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
@@ -25,6 +26,6 @@ public class BleScanDeviceAdapter extends BaseQuickAdapter<WaterDeviceEntity, Ba
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void convert(BaseViewHolder helper, WaterDeviceEntity item) {
|
protected void convert(BaseViewHolder helper, WaterDeviceEntity item) {
|
||||||
helper.setText(R.id.tv_device_name,item.getDeviceName());
|
helper.setText(R.id.tv_device_name, TextUtils.isEmpty(item.getDeviceName())? "未知设备" : item.getDeviceName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/dp_5"
|
android:layout_marginTop="@dimen/dp_5"
|
||||||
|
android:singleLine="true"
|
||||||
android:text="设备名称"
|
android:text="设备名称"
|
||||||
android:textColor="@color/textPrimaryColor"
|
android:textColor="@color/textPrimaryColor"
|
||||||
android:textSize="13sp"/>
|
android:textSize="13sp"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user