123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- package com.example.ueberwachungssystem.Detection;
-
- import android.content.Intent;
- import android.os.Binder;
- import android.os.IBinder;
- import android.util.Log;
- import android.widget.ImageView;
- import android.widget.Toast;
-
- import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import androidx.camera.core.ExperimentalGetImage;
- import androidx.lifecycle.LifecycleService;
-
- import com.example.ueberwachungssystem.WifiCommunication;
-
- import java.io.File;
-
- @ExperimentalGetImage
- public class DetectorService extends LifecycleService {
- public ServiceBinder serviceBinder = new ServiceBinder();
- private DetectorService.OnDetectionListener listener;
- private boolean isServiceRunning = false;
-
- VideoDetector videoDetector = null;
- AudioRecorder audioRecorder = null;
-
- /** Communication **/
-
- WifiCommunication wifiCommunication;
-
- StringBuffer dataFromWifi;
-
- @Override
- public int onStartCommand(Intent intent, int flags, int startId) {
- if (isServiceRunning)
- return START_NOT_STICKY;
-
-
- // Setup Service classes:
- videoDetector = new VideoDetector(this);
- videoDetector.setOnDetectionListener(new Detector.OnDetectionListener() {
- @Override
- public void onDetection(@NonNull DetectionReport detectionReport) {
- passToServiceListener(detectionReport);
- }
- });
-
- audioRecorder = new AudioRecorder(this);
-
-
-
- isServiceRunning = true;
-
- wifiCommunication = new WifiCommunication (1234);
- wifiCommunication.setOnConnectionListener(new WifiCommunication.OnConnectionListener() {
- @Override
- public void onConnection(StringBuffer data) {
- dataFromWifi = data;
- }
- });
- return super.onStartCommand(intent, flags, startId);
- }
- @Override
- public void onDestroy() {
- super.onDestroy();
- isServiceRunning = false;
- }
-
- /** Service methods */
- public class ServiceBinder extends Binder {
- public DetectorService getBoundService() {
- // Return an instance of the TestService
- return DetectorService.this;
- }
- }
- @Nullable
- @Override
- public IBinder onBind(Intent intent) {
- super.onBind(intent);
- return serviceBinder;
- }
-
-
- /** Video Detection */
- public void startVideoDetection() {
- if(videoDetector != null)
- videoDetector.startDetection();
- }
- public void stopVideoDetection() {
- if(videoDetector != null)
- videoDetector.stopDetection();
- }
- public boolean isVideoDetectionRunning() {
- if(videoDetector != null)
- return videoDetector.isDetecting();
- return false;
- }
- public void debugVideoProcessing(ImageView input, ImageView output) {
- if(videoDetector != null)
- videoDetector.debugProcessing(input, output);
- }
-
- /** Audio Detection */
- public void startAudioDetection() {
-
- }
- public void stopAudioDetection() {
-
- }
-
- /** Motion Detection */
- public void startMotionDetection() {
-
- }
- public void stopMotionDetection() {
-
- }
-
- /** Video Recording */
- public void startVideoRecording() {
- if(videoDetector != null)
- videoDetector.startRecording();
- }
- public void stopVideoRecording() {
- if(videoDetector != null)
- videoDetector.stopRecording();
- }
- public boolean isVideoRecordingRunning() {
- if(videoDetector != null)
- return videoDetector.isRecording();
- return false;
- }
- public void setVideoRecordingDir(File outputDir) {
- if (videoDetector != null)
- videoDetector.setOutputDir(outputDir);
- }
-
- /** Audio Recording */
- public void startAudioRecording() {
- if(audioRecorder != null)
- audioRecorder.startRecording();
- }
- public void stopAudioRecording() {
- if(audioRecorder != null)
- audioRecorder.stopRecording();
- }
- public boolean isAudioRecordingRunning() {
- if(videoDetector != null)
- return audioRecorder.isRecording();
- return false;
- }
- public void setAudioRecordingDir(File outputDir) {
- if (audioRecorder != null)
- audioRecorder.setOutputDir(outputDir);
- }
-
-
- /** pass Detection Report to Service Detection Listener and trigger it */
- public void passToServiceListener(DetectionReport detectionReport) {
- if (listener != null) {
- listener.onDetection(detectionReport);
- }
- }
-
-
- /** On Detection Listener - runs when violation is reported */
- public interface OnDetectionListener {
- void onDetection(@NonNull DetectionReport detectionReport);
- }
- public void setOnDetectionListener(@NonNull DetectorService.OnDetectionListener listener) {
- this.listener = listener;
- }
- }
|