日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達者為師

網(wǎng)站首頁 編程語言 正文

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

作者:Hdnw ? 更新時間: 2022-12-31 編程語言

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()
                }
            }
        }
    }

原文鏈接:https://blog.csdn.net/weixin_63357306/article/details/126622914

欄目分類
最近更新