亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android權(quán)限機制深入分析講解

 更新時間:2022年12月05日 09:30:25   作者:Hdnw  
Android的權(quán)限管理遵循的是“最小特權(quán)原則”,即所有的Android應(yīng)用程序都被賦予了最小權(quán)限。一個Android應(yīng)用程序如果沒有聲明任何權(quán)限,就沒有任何特權(quán)

1、權(quán)限

  • 普通權(quán)限:不會直接威脅到用戶安全和隱私的權(quán)限
  • 危險權(quán)限:那些可能會觸及用戶隱私或者對設(shè)備安全性造成影響的權(quán)限。

到Android 10 系統(tǒng)為止所以的危險權(quán)限

2、在程序運行時申請權(quán)限

  • 普通權(quán)限申請:系統(tǒng)會自動幫我們進行授權(quán),不需要用戶手動操作。
  • 危險權(quán)限申請:在Android6.0及以上系統(tǒng)在使用時必須進行運行時權(quán)限處理。

危險權(quán)限申請步驟

(1)判斷用戶是否給我們授權(quán)了。

checkSelfPermission()方法,第一個參數(shù)是Context,第二個參數(shù)是具體的權(quán)限名,然后我們使用方法的返回值和PackageManager.PERMISSION_GRANTED作比較。相等就說明用戶已經(jīng)授權(quán),我們直接執(zhí)行撥打電話的操作進行。不等就說明用戶沒有授權(quán),則需要調(diào)用ActivityCompat.requestPermissions()方法向用戶申請權(quán)限。requestPermissions()方法有三個參數(shù),第一個參數(shù)要求是Activity的實例,第二個參數(shù)是一個String數(shù)組,把要申請的權(quán)限名放入數(shù)組中,第三個參數(shù)是唯一的請求碼。

if(ContextCompat.checkSelfPermission(this,android.Manifest.permission.CALL_PHONE)!=PackageManager.PERMISSION_GRANTED){
                ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.CALL_PHONE),1)
 }
 else{
          call()
 }

(2)用戶已經(jīng)授權(quán),我們直接執(zhí)行撥打電話的操作。

private fun call(){
        try {
            val intent=Intent(Intent.ACTION_CALL)
            intent.data= Uri.parse("tel:10086")
            startActivity(intent)
        }catch (e:SecurityException){
            e.printStackTrace()
        }
    }

(3)用戶沒有授權(quán),調(diào)用ActivityCompat.requestPermissions()方法之后,系統(tǒng)會彈出一個權(quán)限申請的對話框,用戶可以選擇接受或者拒絕申請,最后回調(diào)到onRequestPermissionsResult()方法·。

override fun onRequestPermissionsResult(
        requestCode: Int,
        permissions: Array<out String>,
        grantResults: IntArray
    ) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        when(requestCode){
            1->{
                if (grantResults.isNotEmpty()&&grantResults[0]==PackageManager.PERMISSION_GRANTED){
                    call()
                }
                else{
                    Toast.makeText(this,"You denied the permission",Toast.LENGTH_SHORT).show()
                }
            }
        }
    }

到此這篇關(guān)于Android權(quán)限機制深入分析講解的文章就介紹到這了,更多相關(guān)Android權(quán)限機制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論