Skip to content

Commit 370dcff

Browse files
committed
删除硬编码ip地址和端口号,由手动输入
1 parent 8284097 commit 370dcff

File tree

3 files changed

+266
-199
lines changed

3 files changed

+266
-199
lines changed

hub/hub-android-demo/src/main/java/com/tencent/iot/hub/device/android/app/IoTMqttFragment.java

Lines changed: 54 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import android.content.res.AssetManager;
66
import android.os.Bundle;
77
import android.os.Environment;
8+
import android.text.Editable;
9+
import android.text.TextUtils;
810
import android.util.Log;
911
import android.view.LayoutInflater;
1012
import android.view.View;
@@ -54,6 +56,7 @@
5456
import java.util.Map;
5557
import java.util.UUID;
5658
import java.util.concurrent.atomic.AtomicInteger;
59+
import java.util.regex.Pattern;
5760

5861
import javax.net.SocketFactory;
5962

@@ -75,6 +78,8 @@ public class IoTMqttFragment extends Fragment {
7578

7679
private Button mCloseConnectBtn;
7780

81+
private EditText mIPEdit;
82+
7883
private Button mSubScribeBtn;
7984

8085
private Button mUnSubscribeBtn;
@@ -165,9 +170,14 @@ public class IoTMqttFragment extends Fragment {
165170
"Zcrqjyw+6baShrOfotoFDlFE/wqf6FjhgeRkOb5QlA==\n" +
166171
"-----END CERTIFICATE-----\n";
167172
// ssh 要访问的IP
168-
private String sshHost = "192.168.1.107";
169-
// ssh 端口号
170-
private int sshPort = 8022;
173+
private String sshHost = "";
174+
// ssh 端口号
175+
private int sshPort = 0;
176+
177+
String pattern = "^(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\\."
178+
+ "(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\\."
179+
+ "(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\\."
180+
+ "(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])$";
171181

172182
private volatile boolean mIsConnected;
173183

@@ -264,27 +274,47 @@ public void onNothingSelected(AdapterView<?> parent) {
264274
mConnectBtn.setOnClickListener(new View.OnClickListener() {
265275
@Override
266276
public void onClick(View view) {
267-
if (!mIsConnected) {
268-
SharedPreferences settings = mParent.getSharedPreferences("config", Context.MODE_PRIVATE);
269-
mBrokerURL = settings.getString(BROKER_URL, mBrokerURL);
270-
mProductID = settings.getString(PRODUCT_ID, mProductID);
271-
mDevName = settings.getString(DEVICE_NAME, mDevName);
272-
mDevPSK = settings.getString(DEVICE_PSK, mDevPSK);
273-
mSubProductID = settings.getString(SUB_PRODUCID, mSubProductID);
274-
mSubDevName = settings.getString(SUB_DEVNAME, mSubDevName);
275-
mSubDevPsk = settings.getString(SUB_DEVICE_PSK, mSubDevPsk);
276-
277-
mTestTopic = settings.getString(TEST_TOPIC, mTestTopic);
278-
279-
mDevCert = settings.getString(DEVICE_CERT, mDevCert);
280-
mDevPriv = settings.getString(DEVICE_PRIV, mDevPriv);
281-
282-
mMQTTSample = new MQTTSample(mParent, new SelfMqttActionCallBack(), mBrokerURL, mProductID, mDevName, mDevPSK,
283-
mDevCert, mDevPriv, mSubProductID, mSubDevName, mTestTopic, null, null, true, new SelfMqttLogCallBack(), sshHost, sshPort);
284-
mMQTTSample.setSubDevPsk(mSubDevPsk);
285-
mMQTTSample.connect();
277+
Editable ip = mIPEdit.getText();
278+
String[] ipInfo;
279+
if (TextUtils.isEmpty(ip)) {
280+
Toast.makeText(requireContext(), "请输入ip", Toast.LENGTH_SHORT).show();
281+
} else if ((ipInfo = ip.toString().split(":")).length != 2) {
282+
Toast.makeText(requireContext(), "ip与端口输入格式错误", Toast.LENGTH_SHORT).show();
286283
} else {
287-
mParent.printLogInfo(TAG, "Mqtt has been connected, do not connect it again.", mLogInfoText, TXLog.LEVEL_INFO);
284+
if (!Pattern.compile(pattern).matcher(ipInfo[0]).matches()) {
285+
Toast.makeText(requireContext(), "ip地址输入格式错误", Toast.LENGTH_SHORT).show();
286+
return;
287+
} else {
288+
sshHost = ipInfo[0];
289+
}
290+
if (!Pattern.compile("^\\d{4}$").matcher(ipInfo[1]).matches()) {
291+
Toast.makeText(requireContext(), "端口号输入格式错误", Toast.LENGTH_SHORT).show();
292+
return;
293+
} else {
294+
sshPort = Integer.parseInt(ipInfo[1]);
295+
}
296+
if (!mIsConnected) {
297+
SharedPreferences settings = mParent.getSharedPreferences("config", Context.MODE_PRIVATE);
298+
mBrokerURL = settings.getString(BROKER_URL, mBrokerURL);
299+
mProductID = settings.getString(PRODUCT_ID, mProductID);
300+
mDevName = settings.getString(DEVICE_NAME, mDevName);
301+
mDevPSK = settings.getString(DEVICE_PSK, mDevPSK);
302+
mSubProductID = settings.getString(SUB_PRODUCID, mSubProductID);
303+
mSubDevName = settings.getString(SUB_DEVNAME, mSubDevName);
304+
mSubDevPsk = settings.getString(SUB_DEVICE_PSK, mSubDevPsk);
305+
306+
mTestTopic = settings.getString(TEST_TOPIC, mTestTopic);
307+
308+
mDevCert = settings.getString(DEVICE_CERT, mDevCert);
309+
mDevPriv = settings.getString(DEVICE_PRIV, mDevPriv);
310+
311+
mMQTTSample = new MQTTSample(mParent, new SelfMqttActionCallBack(), mBrokerURL, mProductID, mDevName, mDevPSK,
312+
mDevCert, mDevPriv, mSubProductID, mSubDevName, mTestTopic, null, null, true, new SelfMqttLogCallBack(), sshHost, sshPort);
313+
mMQTTSample.setSubDevPsk(mSubDevPsk);
314+
mMQTTSample.connect();
315+
} else {
316+
mParent.printLogInfo(TAG, "Mqtt has been connected, do not connect it again.", mLogInfoText, TXLog.LEVEL_INFO);
317+
}
288318
}
289319
}
290320
});
@@ -589,6 +619,7 @@ public void onClick(View view) {
589619
public void initView(View view) {
590620
mConnectBtn = view.findViewById(R.id.connect);
591621
mCloseConnectBtn = view.findViewById(R.id.close_connect);
622+
mIPEdit = view.findViewById(R.id.ed_ip);
592623
mSubScribeBtn = view.findViewById(R.id.subscribe_topic);
593624
mUnSubscribeBtn = view.findViewById(R.id.unSubscribe_topic);
594625
mPublishBtn = view.findViewById(R.id.publish_topic);

0 commit comments

Comments
 (0)