- 指定的Activity中設定權限
- 設定給整個App的權限
- 檢查/請求權限
- 檢查有效的權限數量
備註:權限設定在AndroidManifest.xml裡面
1. 指定的Activity中設定權限

用途:如果此App要呼叫另一個App分享文章,則需要具備另一個App所需的權限
2. 設定給整個App的權限

3. 檢查/請求權限
如果是有效的,則返回true,否則請求權限
private fun checkMyPermission(): Boolean { return if (ContextCompat.checkSelfPermission( this, Manifest.permission.CAMERA ) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission( this, Manifest.permission.ACCESS_FINE_LOCATION ) != PackageManager.PERMISSION_GRANTED ) { ActivityCompat.requestPermissions( this, arrayOf( Manifest.permission.CAMERA, Manifest.permission.ACCESS_FINE_LOCATION ), 1234 ) false } else { true } }
4. 檢查有效的權限數量
如果請求的權限與允許的權限相等,才是有效的權限
override fun onRequestPermissionsResult( requestCode: Int, permissions: Array, grantResults: IntArray ) { var resultCount = 0 when(requestCode) { 1234 -> { for (i in permissions.indices) { when (permissions[i]) { Manifest.permission.CAMERA -> { if (grantResults[i] != -1) { resultCount++ } } Manifest.permission. ACCESS_FINE_LOCATION -> { if (grantResults[i] != -1) { resultCount++ } } } } if (resultCount == permissions.size) { permissionStatus = true } } } super.onRequestPermissionsResult( requestCode, permissions, grantResults ) println("permissionStatusB = $permissionStatus") }
備註:安全性與權限,可以參考這裡
訂閱Codeilin的旅程,若有最新消息會通知。
廣告
發表迴響