This commit is contained in:
Bastian Kohler 2023-06-19 14:27:04 +02:00
parent ab41217f0e
commit 0a3600d0d6
3 changed files with 34 additions and 2 deletions

View File

@ -1,6 +1,9 @@
package com.example.ueberwachungssystem.Detection;
import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Binder;
import android.os.IBinder;
import android.util.Log;
@ -9,6 +12,8 @@ import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.camera.core.ExperimentalGetImage;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.lifecycle.LifecycleService;
@ExperimentalGetImage
@ -16,6 +21,7 @@ public class DetectorService extends LifecycleService {
public TestBinder testBinder = new TestBinder();
private DetectorService.OnDetectionListener listener;
private boolean isServiceRunning = false;
VideoDetector videoDetector = null;
AudioRecorder audioRecorder = null;
@ -23,6 +29,8 @@ public class DetectorService extends LifecycleService {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (isServiceRunning)
return START_NOT_STICKY;
videoDetector = new VideoDetector(this);
videoDetector.setOnDetectionListener(new Detector.OnDetectionListener() {
@Override
@ -32,9 +40,19 @@ public class DetectorService extends LifecycleService {
});
audioRecorder = new AudioRecorder(this);
isServiceRunning = true;
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
isServiceRunning = false;
}
/** Service methods */
public class TestBinder extends Binder {
public DetectorService getBoundService() {

View File

@ -76,13 +76,12 @@ public class VideoDetector extends Detector {
// Recorder
private File outputDir; // Default: in app files directory
private int rotation = 0;
// Parameters
private static final float ALARM_THRESHOLD = 0.5f; // Percent of pixels changed
private static final float START_DELAY = 20000; // milliseconds
private static final android.util.Size IMAGE_RES = new android.util.Size(640, 480);
private static final android.util.Size IMAGE_RES = new android.util.Size(480, 360);

View File

@ -4,11 +4,16 @@ import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.camera.core.ExperimentalGetImage;
import androidx.camera.view.PreviewView;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import android.Manifest;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
@ -80,4 +85,14 @@ public class MainActivity extends AppCompatActivity {
@Override
public void onServiceDisconnected(ComponentName name) {}
};
private boolean hasPermissions() {
return ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED;
}
private void getPermissions() {
if (!hasPermissions())
ActivityCompat.requestPermissions((Activity) this, new String[]{android.Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO}, 12345);
}
}