以請求 Camera 權限為例,只處理權限,不處理相機功能。
內容目錄
在 AndroidManifest.xml 宣告使用權限
<uses-permission android:name="android.permission.CAMERA" />
在執行時期檢查是否具有權限
fun hasPermission():Boolean { val permission = ActivityCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA) return permission == PackageManager.PERMISSION_GRANTED }
在執行時期向使用者要求權限
fun requestPermission() { ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.CAMERA), REQUEST_CAMERA_PERMISSION ) }
處理使用者對權限請求的回應
override fun onRequestPermissionsResult( requestCode: Int, permissions: Array<out String>, grantResults: IntArray ) { if(requestCode == REQUEST_CAMERA_PERMISSION) { if(grantResults.isNotEmpty()> 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { enableCamera() } else { Toast.makeText(this, "必須許可,才能使用相機", Toast.LENGTH_SHORT).show() } } }
使用內建相機
override fun onRequestPermissionsResult( requestCode: Int, permissions: Array<out String>, grantResults: IntArray ) { if(requestCode == REQUEST_CAMERA_PERMISSION) { if(grantResults.isNotEmpty()> 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { enableCamera() } else { Toast.makeText(this, "必須許可,才能使用相機", Toast.LENGTH_SHORT).show() } } }
Comments