From 479f2e96483e9248c25af23c900200834259b57c Mon Sep 17 00:00:00 2001 From: CYZ <2782394648@qq.com> Date: Mon, 26 Jun 2023 23:57:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9MainActivity=E4=B8=8EVideoAct?= =?UTF-8?q?ivity=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BD=BF=E5=85=B6=E4=B8=8D?= =?UTF-8?q?=E4=BC=9A=E5=9B=A0activity=E8=B7=B3=E8=BD=AC=E8=80=8C=E6=B3=A8?= =?UTF-8?q?=E9=94=80=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=8C=89=E9=92=AE=E5=8F=8A?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../f7730cde41931660f06cfc32899edf44acf4d104 | 10 -- .../.idea/sonarlint/issuestore/index.pb | 4 +- src/sixaunyi/app/src/main/AndroidManifest.xml | 1 + .../com/example/sixaunyi/LoginActivity.java | 26 ++- .../com/example/sixaunyi/MainActivity.java | 3 +- .../com/example/sixaunyi/VideoActivity.java | 168 +++++++++++------- .../src/main/res/drawable-v24/selfhome.png | Bin 0 -> 2511 bytes .../main/res/layout-land/activity_control.xml | 11 ++ .../src/main/res/layout/activity_login.xml | 7 +- .../app/src/main/res/layout/custom_dialog.xml | 40 +++++ .../app/src/main/res/values/strings.xml | 1 + 11 files changed, 187 insertions(+), 84 deletions(-) delete mode 100644 src/sixaunyi/.idea/sonarlint/issuestore/f/7/f7730cde41931660f06cfc32899edf44acf4d104 create mode 100644 src/sixaunyi/app/src/main/res/drawable-v24/selfhome.png create mode 100644 src/sixaunyi/app/src/main/res/layout/custom_dialog.xml diff --git a/src/sixaunyi/.idea/sonarlint/issuestore/f/7/f7730cde41931660f06cfc32899edf44acf4d104 b/src/sixaunyi/.idea/sonarlint/issuestore/f/7/f7730cde41931660f06cfc32899edf44acf4d104 deleted file mode 100644 index 77f57c1..0000000 --- a/src/sixaunyi/.idea/sonarlint/issuestore/f/7/f7730cde41931660f06cfc32899edf44acf4d104 +++ /dev/null @@ -1,10 +0,0 @@ - -k java:S117'"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ߏ -q -java:S1450"[Remove the "mLoginButton" field and declare it as a local variable in the relevant methods.(Ձ -t -java:S1171"YMove the contents of this initializer to a standard constructor or to field initializers.( -G -java:S1602 ",Remove useless curly braces around statement( -V -java:S11263"AReplace this if-then-else statement by a single return statement.(ցz \ No newline at end of file diff --git a/src/sixaunyi/.idea/sonarlint/issuestore/index.pb b/src/sixaunyi/.idea/sonarlint/issuestore/index.pb index 00e75a7..bd69223 100644 --- a/src/sixaunyi/.idea/sonarlint/issuestore/index.pb +++ b/src/sixaunyi/.idea/sonarlint/issuestore/index.pb @@ -22,6 +22,4 @@ j j :app/src/main/java/com/example/sixaunyi/DetectActivity.java,9\6\9668392b13e33166876f2a7d3f10eb5405e757ad k -;app/src/main/java/com/example/sixaunyi/ControlActivity.java,c\9\c99a584c2117ed2df42496451bb97ac1147f5ea0 -i -9app/src/main/java/com/example/sixaunyi/LoginActivity.java,f\7\f7730cde41931660f06cfc32899edf44acf4d104 \ No newline at end of file +;app/src/main/java/com/example/sixaunyi/ControlActivity.java,c\9\c99a584c2117ed2df42496451bb97ac1147f5ea0 \ No newline at end of file diff --git a/src/sixaunyi/app/src/main/AndroidManifest.xml b/src/sixaunyi/app/src/main/AndroidManifest.xml index a874084..844cd7a 100644 --- a/src/sixaunyi/app/src/main/AndroidManifest.xml +++ b/src/sixaunyi/app/src/main/AndroidManifest.xml @@ -51,6 +51,7 @@ diff --git a/src/sixaunyi/app/src/main/java/com/example/sixaunyi/LoginActivity.java b/src/sixaunyi/app/src/main/java/com/example/sixaunyi/LoginActivity.java index 7531f91..5ba1712 100644 --- a/src/sixaunyi/app/src/main/java/com/example/sixaunyi/LoginActivity.java +++ b/src/sixaunyi/app/src/main/java/com/example/sixaunyi/LoginActivity.java @@ -1,8 +1,12 @@ package com.example.sixaunyi; import android.app.Activity; +import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.os.Bundle; import android.widget.Button; +import android.widget.CheckBox; +import android.widget.CompoundButton; import android.widget.EditText; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; @@ -14,6 +18,8 @@ public class LoginActivity extends AppCompatActivity { private EditText mUsername; private EditText mPassword; private Button mLoginButton; + private CheckBox Account_remember; + private SharedPreferences sharedPreferences; private Map mUsers = new HashMap<>(); { mUsers.put("admin", "123456"); @@ -28,6 +34,14 @@ public class LoginActivity extends AppCompatActivity { mUsername = findViewById(R.id.username); mPassword = findViewById(R.id.password); mLoginButton = findViewById(R.id.login); + Account_remember = findViewById(R.id.remember_check); + sharedPreferences = getSharedPreferences("account", Context.MODE_PRIVATE); + String username = sharedPreferences.getString("username", ""); + String password =sharedPreferences.getString("password", ""); + boolean isChecked = sharedPreferences.getBoolean("checkbox_state", false); + mUsername.setText(username); + mPassword.setText(password); + Account_remember.setChecked(isChecked); // 设置登录按钮的点击事件 mLoginButton.setOnClickListener(v -> { attemptLogin(); @@ -38,15 +52,23 @@ public class LoginActivity extends AppCompatActivity { String password = mPassword.getText().toString(); boolean if_correct = verifyUser(username,password); if (if_correct) { + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putString("username", username); + editor.putBoolean("checkbox_state", Account_remember.isChecked()); + editor.apply(); + if (Account_remember.isChecked()){ + editor.putString("password", password); + }else{ + editor.putString("password", ""); + } + editor.apply(); Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(LoginActivity.this, MainActivity.class); startActivity(intent); - finish(); // 关闭登录界面 } else { Toast.makeText(this, "用户名或密码错误", Toast.LENGTH_SHORT).show(); } } - private boolean verifyUser(String username, String password){ if (mUsers.containsKey(username) && mUsers.get(username).equals(password)) { return true; diff --git a/src/sixaunyi/app/src/main/java/com/example/sixaunyi/MainActivity.java b/src/sixaunyi/app/src/main/java/com/example/sixaunyi/MainActivity.java index 23fdf80..c2faa9b 100644 --- a/src/sixaunyi/app/src/main/java/com/example/sixaunyi/MainActivity.java +++ b/src/sixaunyi/app/src/main/java/com/example/sixaunyi/MainActivity.java @@ -527,6 +527,7 @@ public class MainActivity extends AppCompatActivity implements AMapLocationList public void changeAct(View view) { udpReceiveThread.stopListening(); Intent intent = new Intent(MainActivity.this, VideoActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); Bundle b = new Bundle(); b.putString("Angle", MonitorAngle); b.putFloat("Distance", MonitorDistance); @@ -640,7 +641,7 @@ public class MainActivity extends AppCompatActivity implements AMapLocationList Log.d(TAG, "Received data: " + receivedString); if (receivedString.equals(mExpectedData)) { Log.i(TAG, "run: 222222222222222222222222222"); - sendCommand("WARNING"); + sendCommand("WARNING "+String.valueOf(udpMonitorDistance)+" "+udpMonitorAngle); Context context = MainActivity.this; showAlert(context,"传感器报警"); addDroneMarker(); diff --git a/src/sixaunyi/app/src/main/java/com/example/sixaunyi/VideoActivity.java b/src/sixaunyi/app/src/main/java/com/example/sixaunyi/VideoActivity.java index 28d4e07..b1c91be 100644 --- a/src/sixaunyi/app/src/main/java/com/example/sixaunyi/VideoActivity.java +++ b/src/sixaunyi/app/src/main/java/com/example/sixaunyi/VideoActivity.java @@ -23,6 +23,7 @@ import android.os.Message; import android.provider.ContactsContract; import android.util.AttributeSet; import android.util.Log; +import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; @@ -35,6 +36,8 @@ import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; +import org.json.JSONException; +import org.json.JSONObject; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -44,10 +47,10 @@ import java.net.InetAddress; import java.net.*; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; - import android.os.Bundle; import android.widget.ToggleButton; + public class VideoActivity extends AppCompatActivity { private final static String SEND_to_IP = "192.168.39.47"; //填写接收方IP private final static String Recieve_IP = "192.168.39.47";//填服务器IP,与send_to_IP为同一个 @@ -76,12 +79,17 @@ public class VideoActivity extends AppCompatActivity { private ImageButton TakeOff_btn; private ImageButton Landing_btn; private ToggleButton Mode_btn; + private ImageButton selfHome_btn; private String mangle; private float mdistance; // 创建一个可缓存的线程池 private ExecutorService mThreadPool = Executors.newCachedThreadPool(); private UdpDataThread warning_thread; private TextView battery_warning; + private ImageButton show_status; + private String batteryStatus="未获取"; + private String speedStatus="未获取"; + private String distanceStatus="未获取"; //ReceiveData()显示到imageView //manager部分:打开线程,接收 //model部分:发送视频流 @@ -103,7 +111,26 @@ public class VideoActivity extends AppCompatActivity { TakeOff_btn = findViewById(R.id.takeoff_button); Mode_btn = findViewById(R.id.toggleButton2); Setting_btn = findViewById(R.id.setting_button); + Setting_btn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(VideoActivity.this, SettingActivity.class); + startActivity(intent); + } + }); + selfHome_btn = findViewById(R.id.self_home); + selfHome_btn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + try { + sendCommand("DIRECTHOME"); + } catch (UnknownHostException e) { + throw new RuntimeException(e); + } + } + }); battery_warning =findViewById(R.id.warning); + show_status=findViewById(R.id.show_status_button); battery_warning.setTextColor(Color.RED); Animation anim = new AlphaAnimation(0.0f, 1.0f); anim.setDuration(500); // 闪烁时间间隔 @@ -121,6 +148,13 @@ public class VideoActivity extends AppCompatActivity { } catch (UnknownHostException e) { throw new RuntimeException(e); } + show_status.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + // 在这里编写 ImageButton 的点击事件处理逻辑 + showPopup(speedStatus,batteryStatus,distanceStatus); + } + }); } private void Control_Button_Init(){ @@ -147,16 +181,16 @@ public class VideoActivity extends AppCompatActivity { } }); Forward_btn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - try { - sendCommand("FORWARD"); - } catch (UnknownHostException e) { - throw new RuntimeException(e); - } - Log.i(TAG, "onClick: FFFFFFFForward"); - } - }); + @Override + public void onClick(View v) { + try { + sendCommand("FORWARD"); + } catch (UnknownHostException e) { + throw new RuntimeException(e); + } + Log.i(TAG, "onClick: FFFFFFFForward"); + } + }); Back_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -234,13 +268,7 @@ public class VideoActivity extends AppCompatActivity { Log.i(TAG, "onClick: TTTTTTTTTTTTurnRRRRRRRRRRight"); } }); - Setting_btn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(VideoActivity.this, SettingActivity.class); - startActivity(intent); - } - }); + } private void Condition_Init() throws UnknownHostException { @@ -304,7 +332,6 @@ public class VideoActivity extends AppCompatActivity { super.handleMessage(msg); } } - /* * UDP数据接受线程 * */ @@ -375,7 +402,6 @@ public class VideoActivity extends AppCompatActivity { // 创建 DatagramSocket 对象并发送数据报文 DatagramSocket socket = new DatagramSocket(); socket.send(packet); - // 关闭 DatagramSocket 对象 socket.close(); } catch (IOException e) { @@ -393,14 +419,14 @@ public class VideoActivity extends AppCompatActivity { } /* - *UDP数据接收线程 + *UDP数据接收线程 */ public class UdpDataThread extends Thread { private DatagramSocket socket; private boolean running; private byte[] buffer; private static final int BUFFER_SIZE = 1024; // 设置接收缓冲区大小 - + private JSONObject jsonObject; public UdpDataThread() { buffer = new byte[BUFFER_SIZE]; } @@ -408,21 +434,26 @@ public class VideoActivity extends AppCompatActivity { @Override public void run() { running = true; - try { socket = new DatagramSocket(6666); // 设置接收端口号 while (running) { DatagramPacket packet = new DatagramPacket(buffer, buffer.length); socket.receive(packet); - String receivedData = new String(packet.getData(), 0, packet.getLength()); - if (receivedData.equals("电量低于10%")) { - battery_warning.setText(receivedData);}else{ + String receivedData = new String(packet.getData(), 0, packet.getLength(), "UTF-8"); + jsonObject = new JSONObject(receivedData); + batteryStatus = jsonObject.getString("battery"); + speedStatus = jsonObject.getString("speed"); + distanceStatus = jsonObject.getString("distance"); + if (batteryStatus.equals("10")) { + battery_warning.setText("电量仅剩"+batteryStatus);}else{ battery_warning.setText(""); } - System.out.println("接收到数据:" + receivedData); + System.out.println("接收到数据:" + batteryStatus); + System.out.println("接收到数据:" + speedStatus); + System.out.println("接收到数据:" + distanceStatus); // 在这里处理收到的数据,可以根据实际需求进行解析或其他操作 } - } catch (IOException e) { + } catch (IOException | JSONException e) { e.printStackTrace(); } finally { if (socket != null) { @@ -435,43 +466,29 @@ public class VideoActivity extends AppCompatActivity { running = false; } } - //初始化UDP发送线程 -// private static void sendCommand(String Sendstr) throws UnknownHostException { -// InetAddress sendIP = InetAddress.getByName(SEND_to_IP); // 目标 IP 地址 -// int sendPort = 8888; // 目标端口号 -// byte[] sendData = Sendstr.getBytes(); // 要发送的数据 -// UdpSendThread sendCommandThread = new UdpSendThread(sendIP, sendPort, sendData); // 创建新的线程对象 -// sendCommandThread.start(); // 启动线程发送数据 -// } - - - - - -//设置按钮 -// public void showDialog(View view) { -// Dialog dialog = new Dialog(VideoActivity.this); -// dialog.setContentView(R.layout.dialog_takeoff); -// -// SlideUnlockView slideUnlockView = (SlideUnlockView) dialog.findViewById(R.id.slide_unlock_view); -// slideUnlockView.setOnUnlockListener(new SlideUnlockView.OnUnlockListener() { -// @Override -// public void onUnlock() { -// // 在用户滑动解锁后执行操作 -//// try { -//// sendCommand("TAKEOFF"+"___"+angle+"___"+String.valueOf(distance)); -//// } catch (UnknownHostException e) { -//// throw new RuntimeException(e); -//// } -// UdpReceiveThread udpReceiveThread = new UdpReceiveThread(); -// udpReceiveThread.start(); -// -// Log.i(TAG, "onClick: 2222222222222222222222222"); -// -// } -// }); -// dialog.show(); -// } + public void showPopup(String speedStatus,String batteryStatus,String distanceStatus) { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + LayoutInflater inflater = getLayoutInflater(); + View dialogView = inflater.inflate(R.layout.custom_dialog, null); + TextView speedstatus = dialogView.findViewById(R.id.speed); + speedstatus.setText("当前速度为:"+speedStatus); + TextView batterystatus = dialogView.findViewById(R.id.battery); + batterystatus.setText("当前电量为:"+batteryStatus); + TextView distancestatus = dialogView.findViewById(R.id.distance); + distancestatus.setText("当前距离为:"+distanceStatus); + builder.setView(dialogView); + builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + // 点击确定按钮后的操作 + dialog.dismiss(); + } + }); + + AlertDialog dialog = builder.create(); + dialog.show(); + } + //////////////////////////////滑动开关////////////////////////////// public static class SlideUnlockView extends View{ @@ -653,4 +670,25 @@ public class VideoActivity extends AppCompatActivity { return super.onTouchEvent(event); } } + + private void shutdown(){ + warning_thread.stopThread(); + mThreadPool.shutdownNow(); + } + + @Override + public void onBackPressed() { + // 返回到 MainActivity + shutdown(); + Intent intent = new Intent(this, MainActivity.class); + startActivity(intent); + finish(); // 结束 VideoActivity + } + + @Override + protected void onDestroy() { + super.onDestroy(); + // 关闭线程 + shutdown(); + } } \ No newline at end of file diff --git a/src/sixaunyi/app/src/main/res/drawable-v24/selfhome.png b/src/sixaunyi/app/src/main/res/drawable-v24/selfhome.png new file mode 100644 index 0000000000000000000000000000000000000000..db334af2e57b1c024849919c0cb7a5fd04f85580 GIT binary patch literal 2511 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 literal 0 HcmV?d00001 diff --git a/src/sixaunyi/app/src/main/res/layout-land/activity_control.xml b/src/sixaunyi/app/src/main/res/layout-land/activity_control.xml index e57105c..e51286e 100644 --- a/src/sixaunyi/app/src/main/res/layout-land/activity_control.xml +++ b/src/sixaunyi/app/src/main/res/layout-land/activity_control.xml @@ -246,6 +246,17 @@ android:text="ToggleButton" android:textOff="" android:textOn="" /> + @@ -52,4 +53,4 @@ - + \ No newline at end of file diff --git a/src/sixaunyi/app/src/main/res/layout/custom_dialog.xml b/src/sixaunyi/app/src/main/res/layout/custom_dialog.xml new file mode 100644 index 0000000..7d1743f --- /dev/null +++ b/src/sixaunyi/app/src/main/res/layout/custom_dialog.xml @@ -0,0 +1,40 @@ + + + + + + + + diff --git a/src/sixaunyi/app/src/main/res/values/strings.xml b/src/sixaunyi/app/src/main/res/values/strings.xml index 26b2329..38d37e2 100644 --- a/src/sixaunyi/app/src/main/res/values/strings.xml +++ b/src/sixaunyi/app/src/main/res/values/strings.xml @@ -19,6 +19,7 @@ 查看状态 降落按钮 降落按钮 + 自动返航按钮 Hello first fragment Hello second fragment. Arg: %1$s \ No newline at end of file