From 79c7c16d2147ef6347a99657b66cf211dccee394 Mon Sep 17 00:00:00 2001 From: Miguel Siebenhaar Date: Tue, 20 Jun 2023 15:19:29 +0200 Subject: [PATCH] Kommunikation Version 1.4 UDP Socket --- app/src/main/AndroidManifest.xml | 4 +- .../ueberwachungssystem/MainActivity.java | 46 ++++++++++++++----- .../WifiCommunication.java | 15 +++--- 3 files changed, 44 insertions(+), 21 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 857fcad..339f7bf 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,6 +5,8 @@ + + + android:label="Ueberwachungsapp"> diff --git a/app/src/main/java/com/example/ueberwachungssystem/MainActivity.java b/app/src/main/java/com/example/ueberwachungssystem/MainActivity.java index 64285a7..caa0bc0 100644 --- a/app/src/main/java/com/example/ueberwachungssystem/MainActivity.java +++ b/app/src/main/java/com/example/ueberwachungssystem/MainActivity.java @@ -3,20 +3,14 @@ import android.annotation.SuppressLint; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.Bundle; -import android.provider.Settings; -import android.telephony.TelephonyManager; +import android.view.Menu; +import android.view.MenuItem; import android.view.View; import android.widget.Button; -import android.widget.EditText; import android.widget.TextView; +import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.PrintWriter; import java.net.InetAddress; -import java.net.ServerSocket; -import java.net.Socket; import java.net.UnknownHostException; import java.nio.ByteBuffer; import java.nio.ByteOrder; @@ -27,6 +21,7 @@ public class MainActivity extends AppCompatActivity { TextView tvConnectionInfos; WifiCommunication communication; + PermissionRequest permission; public static String SERVER_IP = ""; public static final int SERVER_PORT = 1234; float i=0; @@ -43,7 +38,6 @@ public class MainActivity extends AppCompatActivity { setContentView(R.layout.activity_main); tvMessages = findViewById(R.id.tvMessages); tvConnectionInfos = findViewById(R.id.tvConnectionInfos); - String deviceId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID); try { SERVER_IP = getLocalIpAddress(); tvConnectionInfos.setText("Connection Infos: \n Own IP-Adress: " + SERVER_IP+ " Port: " + SERVER_PORT); @@ -59,11 +53,39 @@ public class MainActivity extends AppCompatActivity { } }); } + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.options_menu, menu); + return true; + } + public boolean onOptionsItemSelected(MenuItem item) { + Toast.makeText(this, "Selected Item: " +item.getTitle(), Toast.LENGTH_SHORT).show(); + PopUpClass popUpClass; + switch (item.getItemId()) { + case R.id.Rechteverwaltung: + popUpClass = new PopUpClass(MainActivity.this); + popUpClass.showPopupWindow(tvMessages); + popUpClass.RechtePrüfen(); + return true; + case R.id.Sensoren: + popUpClass = new PopUpClass(MainActivity.this); + popUpClass.showPopupWindow(tvMessages); + popUpClass.Sensoren(); + return true; + case R.id.Impressum: + popUpClass = new PopUpClass(MainActivity.this); + popUpClass.showPopupWindow(tvMessages); + popUpClass.Impressum(); + return true; + default: + return super.onOptionsItemSelected(item); + } + } + protected void onResume() { super.onResume(); communication = new WifiCommunication(MainActivity.this, SERVER_PORT); - //communication.sendTrue(" has Entered "); - + permission = new PermissionRequest(MainActivity.this); + permission.rechtePruefen(); } @Override protected void onPause() { diff --git a/app/src/main/java/com/example/ueberwachungssystem/WifiCommunication.java b/app/src/main/java/com/example/ueberwachungssystem/WifiCommunication.java index ceefa42..f283bdf 100644 --- a/app/src/main/java/com/example/ueberwachungssystem/WifiCommunication.java +++ b/app/src/main/java/com/example/ueberwachungssystem/WifiCommunication.java @@ -1,5 +1,6 @@ package com.example.ueberwachungssystem; import android.annotation.SuppressLint; +import android.widget.Toast; import java.io.IOException; import java.net.DatagramPacket; @@ -37,7 +38,9 @@ public class WifiCommunication { } catch (SocketException | UnknownHostException e) { throw new RuntimeException(e); } - mainActivity.runOnUiThread(() -> mainActivity.tvMessages.setText("Communication running")); + Toast.makeText(mainActivity.getApplicationContext(),"Communication running", Toast.LENGTH_SHORT).show(); + + //mainActivity.runOnUiThread(() -> mainActivity.tvMessages.setText("Communication running")); } private class ReceiveThread extends Thread { private StringBuffer rxStringBuffer = new StringBuffer(); @@ -52,7 +55,8 @@ public class WifiCommunication { DatagramPacket rxPacket = new DatagramPacket(receiveData, receiveData.length); socket.receive(rxPacket); rxString = new String(rxPacket.getData()); - if(!previousRxString.equals(rxString)) { + String[] splitrxString = rxString.split(","); + if(!previousRxString.equals(rxString) && splitrxString[0].equals("1") && splitrxString.length==7) { rxStringBuffer.append(rxString).append("\n"); mainActivity.runOnUiThread(() -> mainActivity.tvMessages.setText(rxStringBuffer)); previousRxString = rxString; @@ -77,18 +81,13 @@ public class WifiCommunication { Date curDate = new Date(System.currentTimeMillis()); String str = formatter.format(curDate); byte[] send_Data = new byte[512]; - String txString = (str+ ",Gruppe2," + getLocalIpAddress() + ",An,Video," +messageToSend); + String txString = ("1," +str+ ",Gruppe2," + getLocalIpAddress() + ",An,Video," +messageToSend); send_Data = txString.getBytes(); DatagramPacket txPacket = new DatagramPacket(send_Data, txString.length(), address, port); for(int i = 0; i < 500; i++) { socket.send(txPacket); - /*try{ - sleep(10); - }catch (InterruptedException e){ - e.printStackTrace(); - }*/ } } } while (running);