天天看點

kotlin:安卓開發動态申請多個權限

應用接入支付寶的sdk,需要申請一些權限。

這裡是kotlin的代碼:

對了:6.0以後有3組,27個權限是需要動态申請的,具體,百度吧。

下面申請了兩個權限(要在manifest檔案注冊哈)

//1、首先聲明一個數組permissions,将需要的權限都放在裡面
        val permissions = arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE)
        val mPermissionList = ArrayList<String>()
        val mRequestCode = 0x1//權限請求碼
        fun initPermission() {
            mPermissionList.clear()
            for (permission in permissions) {
                if (ContextCompat.checkSelfPermission(
                        [email protected],
                        permission
                    ) != PackageManager.PERMISSION_GRANTED
                ) {
                    mPermissionList.add(permission)
                }
            }
            if (!mPermissionList.isEmpty()) {
                // 後續操作...
                    ActivityCompat.requestPermissions([email protected], permissions, mRequestCode)

            } else {
                Toast.makeText([email protected],"全部授予!",Toast.LENGTH_SHORT).show()
               
               
            }
        }
//重寫
 override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        when (requestCode) {
           0x1 -> for (i in 0 until grantResults.size) {
                if (grantResults[i] != PackageManager.PERMISSION_GRANTED)   Toast.makeText(this,"您有未授予的權限,可能影響使用",Toast.LENGTH_SHORT).show()
            }

        }// 授權結束後的後續操作
           

繼續閱讀