diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..18c3724
--- /dev/null
+++ b/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 4d5311c..500af69 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -86,6 +86,7 @@
+
diff --git a/app/src/main/java/com/qtagger/Activity/Test/PhotographFragment.java b/app/src/main/java/com/qtagger/Activity/Test/PhotographFragment.java
index 493fd1d..6342da6 100644
--- a/app/src/main/java/com/qtagger/Activity/Test/PhotographFragment.java
+++ b/app/src/main/java/com/qtagger/Activity/Test/PhotographFragment.java
@@ -99,6 +99,8 @@ public class PhotographFragment extends Fragment {
pictureAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
+ boolean permission = CommonHelper.CheckCameraPermission(getActivity());
+
activityResultPicture.launch(dataManager.cameraIntent);
}
diff --git a/app/src/main/java/com/qtagger/Activity/TestSelectActivity.java b/app/src/main/java/com/qtagger/Activity/TestSelectActivity.java
index 763356c..ae2e84b 100644
--- a/app/src/main/java/com/qtagger/Activity/TestSelectActivity.java
+++ b/app/src/main/java/com/qtagger/Activity/TestSelectActivity.java
@@ -1,38 +1,28 @@
package com.qtagger.Activity;
+import android.Manifest;
+import android.app.Activity;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.View;
+
import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
-import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
-import androidx.core.content.FileProvider;
-
-import android.Manifest;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.graphics.Bitmap;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Environment;
-import android.provider.MediaStore;
-import android.view.View;
+import androidx.core.content.ContextCompat;
import com.qtagger.Data.TestEnum;
import com.qtagger.R;
import com.qtagger.util.CommonHelper;
import com.qtagger.util.DataManager;
-import java.io.File;
-import java.io.IOException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-
public class TestSelectActivity extends AppCompatActivity {
- private DataManager dataManager = DataManager.getInstance();
+ private final DataManager dataManager = DataManager.getInstance();
private static final int REQUESTR_IMAGE_CAPTURE = 1;
private static final int SINGLE_PERMISSION = 1004;
@@ -40,6 +30,7 @@ public class TestSelectActivity extends AppCompatActivity {
private Uri photoUri;
+
ActivityResultLauncher activityResultPicture = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() {
@Override
public void onActivityResult(ActivityResult result) {
@@ -48,10 +39,12 @@ public class TestSelectActivity extends AppCompatActivity {
}
});
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_select);
+ Activity thisActivity = this;
findViewById(R.id.button_발생지특성검사).setOnClickListener(new View.OnClickListener() {
@@ -67,7 +60,7 @@ public class TestSelectActivity extends AppCompatActivity {
@Override
public void onClick(View v) {
dataManager.testEnum = TestEnum.예비검사;
- activityResultPicture.launch(dataManager.cameraIntent);
+ CommonHelper.CallCamera( thisActivity,activityResultPicture);
}
});
diff --git a/app/src/main/java/com/qtagger/MainActivity.java b/app/src/main/java/com/qtagger/MainActivity.java
index 2c71277..e7a1634 100644
--- a/app/src/main/java/com/qtagger/MainActivity.java
+++ b/app/src/main/java/com/qtagger/MainActivity.java
@@ -1,11 +1,9 @@
package com.qtagger;
-import androidx.annotation.RequiresApi;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.room.Room;
-
+import android.Manifest;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Build;
@@ -16,22 +14,43 @@ import android.widget.Button;
import android.widget.Spinner;
import android.widget.Toast;
+import androidx.activity.result.ActivityResult;
+import androidx.activity.result.ActivityResultCallback;
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.annotation.RequiresApi;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+import androidx.room.Room;
+
import com.qtagger.Activity.AccountAdd;
import com.qtagger.Activity.AccountList;
import com.qtagger.Activity.NavigationActivity;
import com.qtagger.Activity.TestSelectActivity;
import com.qtagger.Database.Account;
import com.qtagger.Database.AppDatabase;
+import com.qtagger.util.CommonHelper;
import com.qtagger.util.DataManager;
import java.util.List;
public class MainActivity extends AppCompatActivity {
+ private static final int REQUEST_CODE = 0;
private Spinner mSpinner;
private Button btnLogin;
private DataManager dataManager;
private List accountList;
+ ActivityResultLauncher activityResultPicture = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() {
+ @Override
+ public void onActivityResult(ActivityResult result) {
+ CommonHelper.CameraResult(result);
+
+ }
+ });
+
+ @RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -39,7 +58,7 @@ public class MainActivity extends AppCompatActivity {
mSpinner = findViewById(R.id.spinner_account);
dataManager = DataManager.getInstance();
-
+ CommonHelper.CheckCameraPermission(this);
//테스트용도 나중에 삭제
findViewById(R.id.imageView).setOnClickListener(new View.OnClickListener() {
diff --git a/app/src/main/java/com/qtagger/util/CommonHelper.java b/app/src/main/java/com/qtagger/util/CommonHelper.java
index 5e7c09f..f4f0188 100644
--- a/app/src/main/java/com/qtagger/util/CommonHelper.java
+++ b/app/src/main/java/com/qtagger/util/CommonHelper.java
@@ -2,11 +2,21 @@ package com.qtagger.util;
import static android.app.Activity.RESULT_OK;
+import static com.qtagger.util.DataManager.CAMERA_PERMISSIONS_REQUEST_CODE;
+import static com.qtagger.util.DataManager.cameraIntent;
+
+import android.Manifest;
+import android.app.Activity;
+import android.content.Intent;
+import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.TypedValue;
import androidx.activity.result.ActivityResult;
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
public class CommonHelper {
@@ -19,4 +29,33 @@ public class CommonHelper {
}
return null;
}
+
+ public static boolean CheckCameraPermission(Activity activity_this)
+ {
+ int permissionCheck = ContextCompat.checkSelfPermission(activity_this,Manifest.permission.CAMERA);
+ if (permissionCheck == PackageManager.PERMISSION_DENIED) {
+ if (ActivityCompat.shouldShowRequestPermissionRationale(activity_this,Manifest.permission.CAMERA)) {
+ //권한 설명 필요
+ ActivityCompat.requestPermissions(activity_this,new String[] {Manifest.permission.CAMERA}, CAMERA_PERMISSIONS_REQUEST_CODE);
+ } else {
+ ActivityCompat.requestPermissions(activity_this,new String[] {Manifest.permission.CAMERA}, CAMERA_PERMISSIONS_REQUEST_CODE);
+ }
+ }
+
+ return permissionCheck==PackageManager.PERMISSION_GRANTED?true:false;
+ }
+
+ public static void CallCamera(Activity activity, ActivityResultLauncher activityResultPicture){
+ boolean permission = CheckCameraPermission(activity);
+
+ //권한이 있을떄만 실행
+ if(permission)
+ {
+ activityResultPicture.launch(cameraIntent);
+ }
+ }
+
+
+
+
}
diff --git a/app/src/main/java/com/qtagger/util/DataManager.java b/app/src/main/java/com/qtagger/util/DataManager.java
index 094f6ac..a40f005 100644
--- a/app/src/main/java/com/qtagger/util/DataManager.java
+++ b/app/src/main/java/com/qtagger/util/DataManager.java
@@ -2,6 +2,9 @@ package com.qtagger.util;
import static android.app.Activity.RESULT_OK;
+import static com.qtagger.util.CommonHelper.CheckCameraPermission;
+
+import android.app.Activity;
import android.content.Intent;
import android.provider.MediaStore;
@@ -19,8 +22,9 @@ public class DataManager {
public Account loginAccount;
public FragmentManager fragmentManager;
- public TestEnum testEnum = TestEnum.선택안함;
- public Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
+ public static TestEnum testEnum = TestEnum.선택안함;
+ public static Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
+ public static final int CAMERA_PERMISSIONS_REQUEST_CODE = 100;
private static class DataManagerHolder{
public static final DataManager INSTANCE = new DataManager();