From b6f1aeaeb66f19a516a406da1201da94c7f9c47d Mon Sep 17 00:00:00 2001 From: Lihongda <963140097@qq.com> Date: Fri, 23 Feb 2024 06:25:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=A2=9E=E5=8A=A0airkiss?= =?UTF-8?q?=E9=85=8D=E7=BD=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ifish/activity/newbind/AirKissUtil.java | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/iFish7/src/main/java/com/ifish/activity/newbind/AirKissUtil.java b/iFish7/src/main/java/com/ifish/activity/newbind/AirKissUtil.java index 21b5f5b12..cd32ff831 100644 --- a/iFish7/src/main/java/com/ifish/activity/newbind/AirKissUtil.java +++ b/iFish7/src/main/java/com/ifish/activity/newbind/AirKissUtil.java @@ -46,10 +46,12 @@ public class AirKissUtil { receiveSubscribe.unsubscribe(); } AirKissEncoder airKissEncoder = new AirKissEncoder(ssid, password); + //发送AirKiss sendSubscribe = Observable.create(new Observable.OnSubscribe() { @Override public void call(Subscriber subscriber) { + subscriber.onNext("start"); byte[] sendBuffer = new byte[1500]; try (DatagramSocket sendSocket = new DatagramSocket()) { // 创建一个新的DatagramSocket对象,此时系统会随机分配一个可用的UDP端口号。 @@ -76,6 +78,7 @@ public class AirKissUtil { .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { + final ProgressDialog mDialog = new ProgressDialog(activity); @Override public void onCompleted() { LogUtils.d("LHD onCompleted"); @@ -90,23 +93,35 @@ public class AirKissUtil { @Override public void onNext(String string) { LogUtils.d("LHD send onNext =" + string); + + mDialog.setTitle("配网"); + mDialog.setMessage("发送配网信息..."); + mDialog.setCancelable(false); + mDialog.show(); + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + //发送配网ssid pwd,因为字节发送需要时间比较久,此处只是设置比较短的提示,但实际上后台线程还在发送中。 + mDialog.dismiss(); + receiveUDPPackage(activity); + } + }, 5000); + } }); - receiveUDPPackage(activity); +// receiveUDPPackage(activity); } public void receiveUDPPackage(AppCompatActivity activity) { - ProgressDialog mDialog = new ProgressDialog(activity); + //接收udp包 receiveSubscribe = Observable.create(new Observable.OnSubscribe() { @Override public void call(Subscriber subscriber) { byte[] buffer = new byte[15000]; - DatagramSocket udpServerSocket = null; - try { - udpServerSocket = new DatagramSocket(9954); + try (DatagramSocket udpServerSocket = new DatagramSocket(9954)) { udpServerSocket.setSoTimeout(1000 * 60); DatagramPacket packet = new DatagramPacket(buffer, buffer.length); while (true) { @@ -134,14 +149,12 @@ public class AirKissUtil { e.printStackTrace(); } finally { LogUtils.d("LHD received finally: "); - if (udpServerSocket != null) { - udpServerSocket.close(); - } } } }).subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Subscriber() { + final ProgressDialog mDialog = new ProgressDialog(activity); @Override public void onStart() { super.onStart();