Search

Android Camera 권한

Programming/Android 2018. 3. 6. 20:08 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Android Camera 권한


Android M 이후 버전에서는 


팝업으로 사용자에게 권한을 받아한다.



/**********권한 요청************/
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
/**
* 사용자 단말기의 권한 중 "카메라" 권한이 허용되어 있는지 확인한다.
* Android는 C언어 기반으로 만들어졌기 때문에 Boolean 타입보다 Int 타입을 사용한다.
*/
int permissionResult = checkSelfPermission(Manifest.permission.CAMERA);


/** * 패키지는 안드로이드 어플리케이션의 아이디이다. *
* 현재 어플리케이션이 카메라에 대해 거부되어있는지 확인한다. */
if (permissionResult == PackageManager.PERMISSION_DENIED) {


/** * 사용자가 CALL_PHONE 권한을 거부한 적이 있는지 확인한다. *
* 거부한적이 있으면 True를 리턴하고 *
* 거부한적이 없으면 False를 리턴한다. */
if (shouldShowRequestPermissionRationale(Manifest.permission.CAMERA)) {
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("권한이 필요합니다.").setMessage("이 기능을 사용하기 위해서는 단말기의 \"카메라\" 권한이 필요합니다. 계속 하시겠습니까?")
.setPositiveButton("네", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {

/** * 새로운 인스턴스(onClickListener)를 생성했기 때문에 *
* 버전체크를 다시 해준다. */
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// CALL_PHONE 권한을 Android OS에 요청한다.
requestPermissions(new String[]{Manifest.permission.CAMERA}, 1000);
}
}
})
.setNegativeButton("아니요", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "기능을 취소했습니다", Toast.LENGTH_SHORT).show();
}
}).create().show();


return -1;
// need to retry
}
// 최초로 권한을 요청할 때
else {
// CALL_PHONE 권한을 Android OS에 요청한다.
requestPermissions(new String[]{Manifest.permission.CAMERA}, 1000);
}
}
// CALL_PHONE의 권한이 있을 때
else {
}
}
/************권한요청 끝**************/






336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

카메라 인텐트로 띄운후 해당 이미지 ImageView에 띄우기


1. 카메라 인텐트 띄우기


Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 1);


2. 갤러리 인텐트 띄우기



Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, 2);

인텐트 후 Image 불러오기




	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data)
	{
		if (resultCode == RESULT_OK)
		{
			if (requestCode == 1) // 1 은 위에서 startActivityForResult(intent, 1);
			{
				ImageView imageView1 = (ImageView)findViewById(R.id.imageView1);
				Bitmap bm = (Bitmap) data.getExtras().get("data");
				imageView1.setImageBitmap(bm);
			}
		}
	}

'Programming > Android' 카테고리의 다른 글

Android SQLite Select Where And &  (0) 2013.05.17
안드로이드 BItmap ImageView Drawable  (0) 2013.05.16
Intent 정리  (0) 2013.05.09
파일 이름 일괄 변경 DarkNamer  (0) 2013.05.05
MyLocation Class  (0) 2013.05.04