什么是获得电话意图权限的正确方法

如何使用Kotlin请求权限。

我正在尝试打个电话function

fun buChargeEvent(view: View){ var number: Int = txtCharge.text.toString().toInt() val intentChrage = Intent(Intent.ACTION_CALL) intent.data = Uri.parse("tel:$number") startActivity(intentChrage) } 

我在清单中添加了用户权限,但仍然有相同的错误 。

您需要请求运行时权限,因为Android 6.0的某些权限要求您在安装时以及在运行时再次提出要求。

遵循这里的说明解释了如何在运行时询问权限。

您需要首先为您的清单添加权限

  

在清单中添加权限后,下面的代码可以正常工作“Number_to_call”将是你需要被替换的号码

  val call = Intent(Intent.ACTION_DIAL) call.setData(Uri.parse("tel:" +"Number_to_call")) startActivity(call) 

您需要添加运行时权限。 从这里下载源代码

//点击布局function:

  rl_call.setOnClickListener { if (boolean_call) { phonecall() }else { fn_permission(Manifest.permission.CALL_PHONE,CALLMODE) } } 

//请求权限响应

 fun fn_permission(permission:String,mode:Int){ requestPermissions(permission, object : PermissionCallBack { override fun permissionGranted() { super.permissionGranted() Log.v("Call permissions", "Granted") boolean_call=true phonecall() } override fun permissionDenied() { super.permissionDenied() Log.v("Call permissions", "Denied") boolean_call=false } }) } 

//函数来调用intent

  fun phonecall() { val intent = Intent(Intent.ACTION_CALL); intent.data = Uri.parse("tel:1234567890s") startActivity(intent) } 

谢谢!