Android權限設置

  1. 指定的Activity中設定權限
  2. 設定給整個App的權限
  3. 檢查/請求權限
  4. 檢查有效的權限數量

備註:權限設定在AndroidManifest.xml裡面

1. 指定的Activity中設定權限

在SecondActivity上面設定權限
用途:如果此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的旅程,若有最新消息會通知。

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

WordPress.com.

向上 ↑

%d 位部落客按了讚: