package com.example.greenwatch; import static android.Manifest.permission.CAMERA; import static android.Manifest.permission.RECORD_AUDIO; import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE; import static android.Manifest.permission.READ_EXTERNAL_STORAGE; import static androidx.core.app.ActivityCompat.requestPermissions; import static androidx.core.content.ContextCompat.checkSelfPermission; import android.Manifest; import android.app.Activity; import android.content.Context; import android.content.DialogInterface; import android.content.pm.PackageManager; import android.os.Bundle; import android.util.Log; import android.view.View; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; public class Permission { private static final int PERMISSION_REQUEST_MICRO = 1; private static final int PERMISSION_REQUEST_CAMERA = 2; private static final int PERMISSION_REQUEST_ALARM = 1234; private static final int PERMISSION_REQUEST_START = 1235; public void startRechtePruefen(Context context, Activity activity){ boolean rechtKamera = checkSelfPermission(context, CAMERA) == PackageManager.PERMISSION_GRANTED; boolean rechtAudio = checkSelfPermission(context, RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED; boolean rechtSchreiben = checkSelfPermission(context, WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED; boolean rechtLesen = checkSelfPermission(context, READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED; Log.d("Kamera Rechte", String.valueOf(rechtKamera)); Log.d("Audio Rechte", String.valueOf(rechtAudio)); Log.d("Schreib Rechte", String.valueOf(rechtSchreiben)); Log.d("Lese Rechte", String.valueOf(rechtLesen)); if(rechtKamera && rechtAudio && rechtSchreiben && rechtLesen){ Log.d("Rechte", "erteilt"); } else { startRechteAnfordern(activity); } } public boolean kameraRechtePruefen(Context context, Activity activity){ boolean rechtKamera = checkSelfPermission(context, CAMERA) == PackageManager.PERMISSION_GRANTED; Log.d("Kamera Rechte", String.valueOf(rechtKamera)); if(rechtKamera){ Log.d("Kamerarechte", "erteilt"); return true; } else { kameraRechteAnfordern(activity); if(checkSelfPermission(context, CAMERA) == PackageManager.PERMISSION_GRANTED){ return true; } else { return false; } } } public boolean microRechtePruefen(Context context, Activity activity){ boolean rechtAudio = checkSelfPermission(context, RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED; Log.d("Audio Rechte", String.valueOf(rechtAudio)); if(rechtAudio){ Log.d("Rechte", "erteilt"); return true; } else { microRechteAnfordern(activity); if(checkSelfPermission(context, RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED){ return true; } else { return false; } } } public boolean alarmRechtePruefen(Context context, Activity activity){ boolean rechtKamera = checkSelfPermission(context, CAMERA) == PackageManager.PERMISSION_GRANTED; boolean rechtAudio = checkSelfPermission(context, RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED; boolean rechtSchreiben = checkSelfPermission(context, WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED; boolean rechtLesen = checkSelfPermission(context, READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED; Log.d("Kamera Rechte", String.valueOf(rechtKamera)); Log.d("Audio Rechte", String.valueOf(rechtAudio)); Log.d("Schreib Rechte", String.valueOf(rechtSchreiben)); Log.d("Lese Rechte", String.valueOf(rechtLesen)); if(rechtKamera && rechtAudio && rechtSchreiben && rechtLesen){ Log.d("Rechte", "erteilt"); return true; } else { alarmRechteAnfordern(activity); if(checkSelfPermission(context, CAMERA) == PackageManager.PERMISSION_GRANTED && checkSelfPermission(context, RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED && checkSelfPermission(context, WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED && checkSelfPermission(context, READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED){ return true; } else { return false; } } } public void startRechteAnfordern(Activity activity){ ActivityCompat.requestPermissions(activity, new String[]{CAMERA, RECORD_AUDIO, WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE}, PERMISSION_REQUEST_START); } public void kameraRechteAnfordern(Activity activity){ ActivityCompat.requestPermissions(activity, new String[]{CAMERA}, PERMISSION_REQUEST_CAMERA); } public void microRechteAnfordern(Activity activity){ ActivityCompat.requestPermissions(activity, new String[]{RECORD_AUDIO}, PERMISSION_REQUEST_MICRO); } public void alarmRechteAnfordern(Activity activity){ ActivityCompat.requestPermissions(activity, new String[]{CAMERA, RECORD_AUDIO, WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE}, PERMISSION_REQUEST_ALARM); } }