728x90
반응형

AndroidManifest

AndroidMainfest.xml 파일에서 CAMERA Permission 추가한다.

    <uses-permission android:name="android.permission.CAMERA" />

 

 

 

CAMERA PERMISSSION Function

permission 상태를 확인

true면 넘어가고, false면 requestPermission() 함수를 불러온다.

    // 카메라 권한 체크
    private fun checkPermission(): Boolean {
        return (ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA) ==
                PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(
            this,
            android.Manifest.permission.READ_EXTERNAL_STORAGE
        ) == PackageManager.PERMISSION_GRANTED)
    }

	// 카메라 권한 요청
    private fun requestPermission() {
        ActivityCompat.requestPermissions(
            this, arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.CAMERA),
            REQUEST_PERMISSION
        )
    }

    // 권한요청 결과
    override fun onRequestPermissionsResult(
        requestCode: Int,
        permissions: Array<out String>,
        grantResults: IntArray
    ) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        if (requestCode == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            Log.d(TAG, "Permission success")
        } else {
            Log.d(TAG, "Fail")
        }
    }

 

 

 

Album에서 Image 가져오기

    override fun onClick(v: View?) {
        when(v?.id){
            R.id.img_content -> {
                // 앨범
                var photoPickIntent = Intent(Intent.ACTION_PICK)
                photoPickIntent.type = "image/*"
                startActivityForResult(photoPickIntent, PICK_IMAGE_FROM_ALBUM)
            }
        }
    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)

        if (requestCode == PICK_IMAGE_FROM_ALBUM) {
            if (resultCode == Activity.RESULT_OK) {
                photoUri = data?.data
                img_content.setImageURI(photoUri)
            } else {
                finish()
            }
        }
    }
반응형

+ Recent posts