逻辑完善

This commit is contained in:
Lihongda 2024-03-11 14:55:27 +08:00
parent 6378f323a3
commit 5126bb1ec8
4 changed files with 76 additions and 7 deletions

View File

@ -185,6 +185,7 @@ public class BindTwoDeviceActivity extends BaseActivity {
return;
}
}
// intent.setClass(BindTwoDeviceActivity.this, BindDeviceChoiceActivity.class);
intent.setClass(BindTwoDeviceActivity.this, NewBindDeviceActivity.class);
intent.putExtra("devicetype", "pet");
intent.putExtra("title", "连接宠物系统");

View File

@ -11,6 +11,7 @@ import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.ifish.activity.BindTankPetActivity;
import com.ifish.activity.BlackListActivity;
import com.ifish.activity.LoadingActivity;
import com.ifish.activity.MainEightControlActivity;
@ -45,6 +46,7 @@ import com.ifish.utils.L;
import com.ifish.utils.SPUtil;
import com.ifish.utils.ToastUtil;
import com.ifish.utils.WifiUtil;
import com.ifish.view.PetPopupChoice;
import com.lidroid.xutils.util.LogUtils;
import java.io.IOException;
@ -53,6 +55,7 @@ import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.util.Arrays;
import java.util.List;
import rx.Observable;
import rx.Observer;
@ -83,17 +86,21 @@ public class AirKissUtil {
private String bssid = "";
private String isSsidHiddenStr = "YES";
//当前需要连接的是什么设备
private String devicetype;
private UDPReceiver udpReceiver = null;
private DatagramSocket sendSocket = null;
ProgressDialog mDialog = null;
private static final int REPLY_BYTE_CONFIRM_TIMES = 3;
public void init(AppCompatActivity activity) {
public void init(AppCompatActivity activity, String devicetype) {
wifiUtil = new WifiUtil(activity);
sp = SPUtil.getInstance(activity);
curActivity = activity;
mDialog = new ProgressDialog(activity);
this.devicetype = devicetype;
if (sendSocket != null) {
sendSocket.close();
}
@ -283,10 +290,17 @@ public class AirKissUtil {
1,
6);
device_mac = mac;
LogUtils.d("LHD 获取到的mac地址 = " + mac);
LogUtils.d("LHD 获取到的mac地址 = " + mac+" 当前设备类型 devicetype = "+devicetype);
if (!TextUtils.isEmpty(device_mac)) {
stopAirKiss();
doPostBindDevice();
//todo 区分是否是宠物笼和摄像头
if (TextUtils.isEmpty(devicetype)){
doPostBindDevice();
} else if ("pet".equals(devicetype)){
doPostBindPetDevice();
}else {
doPostBindDevice();
}
break;
}
}
@ -352,6 +366,34 @@ public class AirKissUtil {
}
}
private void doPostBindPetDevice(){
hm.queryStoreName(new HttpListener<BaseBean<List<String>>>() {
@Override
public void success(final BaseBean<List<String>> baseBean) {
curActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
new PetPopupChoice(curActivity, new PetPopupChoice.OnChoiceListener() {
@Override
public void onChoice(String s) {
doPostBindPetDevice(s);
}
}, baseBean.data).showDialog();
}
});
}
@Override
public void error(Exception e, String msg) {
ToastUtil.show(curActivity, msg);
}
@Override
public void finish() {
}
}, Commons.USER.getUserId());
}
/**
* @param
* @Description: 给宠物设备发送入网指令

View File

@ -2,8 +2,10 @@ package com.ifish.activity.newbind;
import static android.content.Context.WIFI_SERVICE;
import android.Manifest;
import android.app.Dialog;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
@ -15,6 +17,7 @@ import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import com.ifish.activity.HotSpotConnentDeviceActivity;
import com.ifish.activity.HotSpotConnentDeviceCameraActivity;
@ -73,6 +76,10 @@ public class CheckWifiUtil {
return false;
}
WifiManager wifiManager = (WifiManager) activity.getApplicationContext().getSystemService(WIFI_SERVICE);
if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ToastUtil.show(activity.getApplicationContext(), "缺少联网权限");
return false;
}
List<ScanResult> scanResults = wifiManager.getScanResults();
// 是否是 2.4G
boolean is24G = false;

View File

@ -62,7 +62,7 @@ public class NewBindDeviceActivity extends AppCompatActivity {
//----------------变量区--------------------//
private ConnectType curConnectType;//当前选择的连接类型 APConnect,SmartConfig,AirKiss
private boolean first = true;//首次进入
//当前需要连接的是什么设备
private String devicetype;
@ -81,8 +81,8 @@ public class NewBindDeviceActivity extends AppCompatActivity {
initWifiName();
checkWifiUtil = new CheckWifiUtil();
airKissUtil = new AirKissUtil();
airKissUtil.init(this);
devicetype = getIntent().getStringExtra("devicetype");
airKissUtil.init(this,devicetype);
//默认AP联网
curConnectType = ConnectType.AirKiss;
switchUIConnectType(curConnectType);
@ -207,6 +207,7 @@ public class NewBindDeviceActivity extends AppCompatActivity {
*/
public void switchUIConnectType(ConnectType connectType) {
resetLayout();
showToast(connectType);
switch (connectType) {
case SmartConfig:
// 处理SmartConfig逻辑
@ -223,11 +224,9 @@ public class NewBindDeviceActivity extends AppCompatActivity {
tvTips.setText("1、插座仅支持2.4G的WiFi网络不支持5G及双频合一的网络需在路由器设置中分开");
tvTips2.setText("2、先长按插座复位键13秒左右松手后红灯绿灯同时熄灭只有绿灯偶尔闪烁再点下一步。");
tvTips3.setText("3、APP跳转到WLAN后选择ifish-xxxx的网络点击连接密码是12345678连好以后点击左上角返回箭头耐心等待连接。");
ToastUtil.show(this, "切换到AP联网");
break;
case AirKiss:
tvConnectType.setText("一键联网");
ToastUtil.show(this, "一键联网");
tvClickButton.setText("确定");
tvTips.setText("1、插座仅支持2.4G的WiFi网络不支持5G及双频合一的网络需在路由器设置中分开");
tvTips2.setText("2、先长按插座复位键3秒松手后红灯绿灯同时闪烁以后再点确定按钮。");
@ -237,6 +236,25 @@ public class NewBindDeviceActivity extends AppCompatActivity {
}
}
private void showToast(ConnectType connectType){
if (first){
first = false;
LogUtils.d("LHD 首次进入的时候不显示toast");
return;
}
switch (connectType) {
case SmartConfig:
ToastUtil.show(this, "切换到快捷联网");
break;
case APConnect:
ToastUtil.show(this, "切换到AP联网");
break;
case AirKiss:
ToastUtil.show(this, "切换到一键联网");
break;
}
}
/**
* 根据连接类型去连接设备
*/
@ -255,6 +273,7 @@ public class NewBindDeviceActivity extends AppCompatActivity {
// 处理SmartConfig逻辑
Intent intent = new Intent();
String devicetype = getIntent().getStringExtra("devicetype");
LogUtils.d("LHD 快捷联网 smartConfig devicetype = "+devicetype);
if ("camera".equals(devicetype)) {
intent.setClass(NewBindDeviceActivity.this, BindCameraActivity.class);
} else if ("pet".equals(devicetype)) {