권한처리 기능 추가
This commit is contained in:
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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<Intent> activityResultPicture = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
|
||||
@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);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -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<Account> accountList;
|
||||
|
||||
ActivityResultLauncher<Intent> activityResultPicture = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
|
||||
@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() {
|
||||
|
||||
@@ -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<Intent> activityResultPicture){
|
||||
boolean permission = CheckCameraPermission(activity);
|
||||
|
||||
//권한이 있을떄만 실행
|
||||
if(permission)
|
||||
{
|
||||
activityResultPicture.launch(cameraIntent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user