|
@@ -7,6 +7,7 @@ import android.net.ConnectivityManager;
|
|
|
import android.net.Network;
|
|
|
import android.net.NetworkRequest;
|
|
|
import android.os.Bundle;
|
|
|
+import android.text.TextUtils;
|
|
|
import android.util.Log;
|
|
|
import android.view.View;
|
|
|
import android.widget.Button;
|
|
@@ -17,10 +18,16 @@ import androidx.annotation.NonNull;
|
|
|
import androidx.preference.PreferenceManager;
|
|
|
|
|
|
import com.wdkl.ncs.s433.receiver.common.Constants;
|
|
|
+import com.wdkl.ncs.s433.receiver.data.TcpAction;
|
|
|
+import com.wdkl.ncs.s433.receiver.data.TcpModel;
|
|
|
+import com.wdkl.ncs.s433.receiver.data.TcpType;
|
|
|
+import com.wdkl.ncs.s433.receiver.media.RingPlayHelper;
|
|
|
import com.wdkl.ncs.s433.receiver.receiver.NetworkConnectChangedReceiver;
|
|
|
import com.wdkl.ncs.s433.receiver.data.EventBusModel;
|
|
|
import com.wdkl.ncs.s433.receiver.utils.AutoRebootUtil;
|
|
|
+import com.wdkl.ncs.s433.receiver.utils.ByteUtil;
|
|
|
import com.wdkl.ncs.s433.receiver.utils.NetUtil;
|
|
|
+import com.wdkl.ncs.s433.receiver.utils.VoiceManagerUtil;
|
|
|
|
|
|
import org.greenrobot.eventbus.EventBus;
|
|
|
import org.greenrobot.eventbus.Subscribe;
|
|
@@ -38,8 +45,8 @@ public class MainActivity extends SerialPortActivity {
|
|
|
EditText mReception;
|
|
|
ConnectivityManager connectivityManager;
|
|
|
|
|
|
- String macAddress;
|
|
|
- String localIP;
|
|
|
+ String macAddress = "";
|
|
|
+ String localIP = "";
|
|
|
|
|
|
@Override
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
@@ -69,7 +76,7 @@ public class MainActivity extends SerialPortActivity {
|
|
|
findViewById(R.id.btn_send_test).setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
- send("$" + macAddress + "{s433,ACK}#");
|
|
|
+ //
|
|
|
}
|
|
|
});
|
|
|
|
|
@@ -115,9 +122,8 @@ public class MainActivity extends SerialPortActivity {
|
|
|
tcpstatus.setTextColor(getResources().getColor(R.color.red));
|
|
|
}
|
|
|
|
|
|
- //todo test
|
|
|
- //String hex = "2438433a46433a41303a46313a30313a41377b22616374696f6e223a2243414e43454c222c2274797065223a2253343333222c2264617461223a7b227469746c65223a223131e688bfe58f96e6b688227d7d0a23";
|
|
|
-
|
|
|
+ //音频输出100%
|
|
|
+ VoiceManagerUtil.setMusicVoice(getApplicationContext(), 100);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -171,6 +177,70 @@ public class MainActivity extends SerialPortActivity {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ protected void onDataReceivedString(String data) {
|
|
|
+ //$8C:FC:A0:F1:01:A7{"action":"SOS_CALL","type":"S433","data":{"title":"12房紧急呼叫"}}#
|
|
|
+ Log.e("Application", "receiveData: " + data);
|
|
|
+
|
|
|
+ try {
|
|
|
+ //去掉'$'起始符和‘#’结束符
|
|
|
+ if (data.startsWith("$") && data.endsWith("#")) {
|
|
|
+ String tempData = data.substring(1, data.length()-1);
|
|
|
+ int sepIndex = tempData.indexOf("{");
|
|
|
+ String mac = tempData.substring(0, sepIndex);
|
|
|
+ String tcpData = tempData.substring(sepIndex);
|
|
|
+ Log.e("Application", "tempData: " + tempData + ", mac: " + mac + ", tcpData: " + tcpData);
|
|
|
+
|
|
|
+ //如果是发送给本机,则返回ack,并处理点阵屏数据
|
|
|
+ if (macAddress.equals(mac)) {
|
|
|
+ TcpModel tcpModel = TcpModel.getModelByJson(tcpData);
|
|
|
+ if (tcpModel != null) {
|
|
|
+ parseTcpData(tcpModel);
|
|
|
+ }
|
|
|
+
|
|
|
+ ackCallback(macAddress);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (BuildConfig.DEBUG) {
|
|
|
+ //调试版本输出信息
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ final String showMsg = sdf.format(new Date()) + " 收到数据:" + data + "\n";
|
|
|
+
|
|
|
+ runOnUiThread(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ if (mReception != null) {
|
|
|
+ mReception.append(showMsg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ Log.e("Application", "onDataReceivedString Exception...");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void parseTcpData(TcpModel tcpModel) {
|
|
|
+ Log.e("Application", "action: " + tcpModel.getAction() + ", type: " + tcpModel.getType() + ", data: " + tcpModel.getData());
|
|
|
+ if (TcpType.S433 == tcpModel.getType()) {
|
|
|
+ if (TcpAction.S433Action.CALL == tcpModel.getAction() || TcpAction.S433Action.SOS_CALL == tcpModel.getAction()) {
|
|
|
+ //上屏
|
|
|
+ } else if (TcpAction.S433Action.CANCEL == tcpModel.getAction()) {
|
|
|
+ //清屏
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void ackCallback(String mac) {
|
|
|
+ TcpModel tcpModel = new TcpModel();
|
|
|
+ tcpModel.setType(TcpType.S433);
|
|
|
+ tcpModel.setAction(TcpAction.S433Action.ACK);
|
|
|
+ String tcpData = tcpModel.toJson();
|
|
|
+ sendString("$" + mac + tcpData + "#");
|
|
|
+ }
|
|
|
+
|
|
|
private void openNetworkDebug() {
|
|
|
try {
|
|
|
Process p = Runtime.getRuntime().exec("su");
|