[안드로이드] 권한요청

나고수·2021년 9월 8일
0

andriod

목록 보기
7/27
post-thumbnail
//Manifest에 권한 추가

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

class PermissionActivity : AppCompatActivity() {
    private lateinit var binding: ActivityPermissionBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityPermissionBinding.inflate(layoutInflater)
        setContentView(binding.root)


        binding.buttonpermission.setOnClickListener {


            //1. 권한을 Manifest에 추가한다.
            //2. 내가 얻으려는 권한이 이미 허락 되었는지 아니지 체크
            val cameraPermissionCheck =
                ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA)
            //권한이 없는 경우 권한을 요청한다
            //둘의 int값이 같으면 권한이 있는 것이다.
            if (cameraPermissionCheck != PackageManager.PERMISSION_GRANTED) {
                ActivityCompat.requestPermissions(
                    this,
                    arrayOf(android.Manifest.permission.CAMERA),//권한을 array형태로 줘야한다.
                    1000
                )
            }
            //권한이 있는 경우
            else {
                Log.e("permissionss", "권한이 이미 있음")
            }
        }
    }

    override fun onRequestPermissionsResult(
        requestCode: Int,
        permissions: Array<out String>,
        grantResults: IntArray
    ) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        if (requestCode == 1000)//내가 준 requestcode가 맞는지 체크 {
        //권한을 array로 줬으니까, 받는것도 array로 받음. grantResults[확인하고싶은 index]
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                Log.e("permissionss", "승락")
            } else {
                Log.e("permissionss", "거부")
            }
    }
}
}
profile
되고싶다

0개의 댓글