路由器名称长度控制

This commit is contained in:
jia 2024-10-16 21:23:29 +08:00
parent 5eaef0d8a4
commit 59625c2e9f
7 changed files with 76 additions and 15 deletions

View File

@ -89,7 +89,7 @@ public class HotSpotConnentDeviceActivity extends BaseActivity {
while (isNext < 10) { while (isNext < 10) {
isNext++; isNext++;
Thread.sleep(1000); Thread.sleep(1000);
OrderDeviceConnectModel model = OrderModel.OrderDeviceConnectModel(ssidname, ssidpwd);//设置正式环境域名 OrderDeviceConnectModel model = OrderModel.OrderDeviceConnectModel(ssidname, ssidpwd,false);//设置正式环境域名
byte[] bys = ModelCodec.enCode(model);//解析数据 byte[] bys = ModelCodec.enCode(model);//解析数据
InetAddress address = InetAddress.getByName("192.168.4.1"); InetAddress address = InetAddress.getByName("192.168.4.1");
DatagramPacket dp = new DatagramPacket(bys, bys.length, address, 333); DatagramPacket dp = new DatagramPacket(bys, bys.length, address, 333);

View File

@ -90,7 +90,7 @@ public class HotSpotConnentPetDeviceActivity extends BaseActivity {
while (isNext < 10) { while (isNext < 10) {
isNext++; isNext++;
Thread.sleep(1000); Thread.sleep(1000);
OrderDeviceConnectModel model = OrderModel.OrderDeviceConnectModel(ssidname, ssidpwd);//设置正式环境域名 OrderDeviceConnectModel model = OrderModel.OrderDeviceConnectModel(ssidname, ssidpwd,false);//设置正式环境域名
byte[] bys = ModelCodec.enCode(model);//解析数据 byte[] bys = ModelCodec.enCode(model);//解析数据
InetAddress address = InetAddress.getByName("192.168.4.1"); InetAddress address = InetAddress.getByName("192.168.4.1");
DatagramPacket dp = new DatagramPacket(bys, bys.length, address, 333); DatagramPacket dp = new DatagramPacket(bys, bys.length, address, 333);

View File

@ -25,6 +25,7 @@ import com.ifish.activity.HotSpotConnentPetDeviceActivity;
import com.ifish.activity.R; import com.ifish.activity.R;
import com.ifish.utils.AnimationUtil; import com.ifish.utils.AnimationUtil;
import com.ifish.utils.KVUtil; import com.ifish.utils.KVUtil;
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;
@ -67,7 +68,7 @@ public class CheckWifiUtil {
* @param wifipwd * @param wifipwd
* @return * @return
*/ */
public boolean checkWifiCanUse(AppCompatActivity activity, String wifiname, String wifipwd) { public boolean checkWifiCanUse(AppCompatActivity activity, String wifiname, String wifipwd,boolean isBlue) {
if (!checkWifiCanUse(activity)) { if (!checkWifiCanUse(activity)) {
return false; return false;
} }
@ -82,6 +83,59 @@ public class CheckWifiUtil {
return false; return false;
} }
int ssidLen = wifiname.length();
int pwdLen = wifipwd.length();
int ssidLength = wifiname.getBytes().length;
int pwdLength = wifipwd.getBytes().length;
L.i("jjia-----1---"+ssidLen);
L.i("jjia-----2---"+ssidLength);
if (isBlue){ // 蓝牙
if (ssidLength > 45){
if (ssidLength == ssidLen){
ToastUtil.show(activity.getApplicationContext(), "路由器名称长度不能超过45个字符");
return false;
}else {
ToastUtil.show(activity.getApplicationContext(), "路由器名称长度不能超过15个汉字");
return false;
}
}
}else {
if (ssidLength > 20){
if (ssidLength == ssidLen){
ToastUtil.show(activity.getApplicationContext(), "路由器名称长度不能超过20个字符");
return false;
}else {
ToastUtil.show(activity.getApplicationContext(), "路由器名称长度不能超过6个汉字");
return false;
}
}
}
if (isBlue){ // 蓝牙
if (pwdLength > 30){
if (pwdLength == pwdLen){
ToastUtil.show(activity.getApplicationContext(), "路由器密码长度不能超过30个字符");
return false;
}else {
ToastUtil.show(activity.getApplicationContext(), "路由器密码长度不能超过6个汉字");
return false;
}
}
}else {
if (pwdLength > 20){
if (pwdLength == pwdLen){
ToastUtil.show(activity.getApplicationContext(), "路由器密码长度不能超过20个字符");
return false;
}else {
ToastUtil.show(activity.getApplicationContext(), "路由器密码长度不能超过6个汉字");
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) { if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ToastUtil.show(activity.getApplicationContext(), "缺少联网权限"); ToastUtil.show(activity.getApplicationContext(), "缺少联网权限");

View File

@ -1,5 +1,7 @@
package com.ifish.activity.newbind; package com.ifish.activity.newbind;
import static com.ifish.activity.newbind.ConnectType.BlueTooth;
import android.Manifest; import android.Manifest;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
@ -149,7 +151,7 @@ public class NewBindDeviceActivity extends AppCompatActivity {
BleManager.getInstance().disconnectAllDevice(); BleManager.getInstance().disconnectAllDevice();
if ("bluetooth".equals(type)){ if ("bluetooth".equals(type)){
curConnectType = ConnectType.BlueTooth; curConnectType = BlueTooth;
}else { }else {
//默认AP联网 //默认AP联网
curConnectType = ConnectType.AirKiss; curConnectType = ConnectType.AirKiss;
@ -255,7 +257,7 @@ public class NewBindDeviceActivity extends AppCompatActivity {
@Override @Override
public void bleConnect() { public void bleConnect() {
curConnectType = ConnectType.BlueTooth; curConnectType = BlueTooth;
switchUIConnectType(curConnectType); switchUIConnectType(curConnectType);
} }
}); });
@ -389,7 +391,7 @@ public class NewBindDeviceActivity extends AppCompatActivity {
String pwd = tvWifiPwd.getText().toString().trim(); String pwd = tvWifiPwd.getText().toString().trim();
//一系列判断逻辑 //一系列判断逻辑
boolean canConnect = checkWifiUtil.checkWifiCanUse(this, ssid, pwd); boolean canConnect = checkWifiUtil.checkWifiCanUse(this, ssid, pwd,curConnectType==BlueTooth);
L.i("jjia----------------canConnect="+canConnect); L.i("jjia----------------canConnect="+canConnect);
sp.putString(ssid,pwd); sp.putString(ssid,pwd);
if (!canConnect) { if (!canConnect) {
@ -641,7 +643,7 @@ public class NewBindDeviceActivity extends AppCompatActivity {
String ssid = tvWifiName.getText().toString(); String ssid = tvWifiName.getText().toString();
String pwd = tvWifiPwd.getText().toString(); String pwd = tvWifiPwd.getText().toString();
OrderDeviceConnectModel model = OrderModel.OrderDeviceConnectModel(ssid, pwd);//设置正式环境域名 OrderDeviceConnectModel model = OrderModel.OrderDeviceConnectModel(ssid, pwd,true);//设置正式环境域名
byte[] data = ModelCodec.enCode(model); byte[] data = ModelCodec.enCode(model);
BleManager.getInstance().write(currentDevice, SERVICE_UUID, WRITE_UUID, data,false, new BleWriteCallback() { BleManager.getInstance().write(currentDevice, SERVICE_UUID, WRITE_UUID, data,false, new BleWriteCallback() {
@Override @Override

View File

@ -15,10 +15,15 @@ import java.io.Serializable;
* @Description: 设备设置tcp域名命令39字节(17字节+22字节) * @Description: 设备设置tcp域名命令39字节(17字节+22字节)
*/ */
public class OrderDeviceConnectModel extends HeadModel implements Serializable { public class OrderDeviceConnectModel extends HeadModel implements Serializable {
private boolean isNew = false;
public OrderDeviceConnectModel(boolean x){
this.isNew = x;
}
//路由器wifi名 //路由器wifi名
private byte[] ssid_name = new byte[Commons.SSID_LENGTH]; private byte[] ssid_name = new byte[ isNew ?Commons.SSID_LENGTH:20];
//路由器wifi密码 //路由器wifi密码
private byte[] ssid_password = new byte[Commons.SSID_LENGTH]; private byte[] ssid_password = new byte[isNew?Commons.SSID_LENGTH:20];
public byte[] getSsid_name() { public byte[] getSsid_name() {
return ssid_name; return ssid_name;

View File

@ -70,13 +70,13 @@ public class OrderModel {
/** /**
* 链接路由器指令 * 链接路由器指令
*/ */
public final static OrderDeviceConnectModel OrderDeviceConnectModel(String ssid_name, String ssid_pwd) { public final static OrderDeviceConnectModel OrderDeviceConnectModel(String ssid_name, String ssid_pwd,boolean x) {
OrderDeviceConnectModel model = new OrderDeviceConnectModel(); OrderDeviceConnectModel model = new OrderDeviceConnectModel(x);
//15字节数据包头 //15字节数据包头
model.setType((byte) 0); model.setType((byte) 0);
model.setCheck_code((byte) 18); model.setCheck_code((byte) 18);
// model.setRemote_len((byte) 57); // model.setRemote_len((byte) 57);
model.setRemote_len((byte) Commons.Remote_len); model.setRemote_len((byte) (x?Commons.Remote_len:57));
//wifi账号密码 //wifi账号密码
byte[] wifi_Account = model.getSsid_name(); byte[] wifi_Account = model.getSsid_name();
byte[] wifi_Password = model.getSsid_password(); byte[] wifi_Password = model.getSsid_password();

View File

@ -61,9 +61,9 @@ public class Commons {
public static List<GoldTasks> GOLDTASKS = null;//金币任务 public static List<GoldTasks> GOLDTASKS = null;//金币任务
public static final String NimUIKit_ID = "3";//云信聊天 联系爱鱼奇官方的用户id public static final String NimUIKit_ID = "3";//云信聊天 联系爱鱼奇官方的用户id
public static final int SSID_STEP = 25; public static final int SSID_STEP = 25;
public static final int IoBuffer = 100+SSID_STEP*2; public static final int IoBuffer = 100+ SSID_STEP * 2;
public static final int Remote_len = 57+SSID_STEP*2; public static final int Remote_len = 57+ SSID_STEP * 2;
public static final int SSID_LENGTH = 20+SSID_STEP; public static final int SSID_LENGTH = 20+ SSID_STEP ;
public static int num; public static int num;