逻辑完善

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; return;
} }
} }
// intent.setClass(BindTwoDeviceActivity.this, BindDeviceChoiceActivity.class);
intent.setClass(BindTwoDeviceActivity.this, NewBindDeviceActivity.class); intent.setClass(BindTwoDeviceActivity.this, NewBindDeviceActivity.class);
intent.putExtra("devicetype", "pet"); intent.putExtra("devicetype", "pet");
intent.putExtra("title", "连接宠物系统"); intent.putExtra("title", "连接宠物系统");

View File

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

View File

@ -2,8 +2,10 @@ package com.ifish.activity.newbind;
import static android.content.Context.WIFI_SERVICE; import static android.content.Context.WIFI_SERVICE;
import android.Manifest;
import android.app.Dialog; import android.app.Dialog;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.wifi.ScanResult; import android.net.wifi.ScanResult;
import android.net.wifi.WifiInfo; import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
@ -15,6 +17,7 @@ import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import com.ifish.activity.HotSpotConnentDeviceActivity; import com.ifish.activity.HotSpotConnentDeviceActivity;
import com.ifish.activity.HotSpotConnentDeviceCameraActivity; import com.ifish.activity.HotSpotConnentDeviceCameraActivity;
@ -73,6 +76,10 @@ public class CheckWifiUtil {
return false; return false;
} }
WifiManager wifiManager = (WifiManager) activity.getApplicationContext().getSystemService(WIFI_SERVICE); 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(); List<ScanResult> scanResults = wifiManager.getScanResults();
// 是否是 2.4G // 是否是 2.4G
boolean is24G = false; boolean is24G = false;

View File

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