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

如何使用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) } 

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

3 Solutions collect form web for “什么是获得电话意图权限的正确方法”

您需要请求运行时权限,因为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) } 

谢谢!

  • 在高阶函数中调用具有参数/ s的lambda
  • 在xml定义的活动中找不到onClick方法
  • Kotlin通用对话框不显示
  • Kotlin - 在循环解构不工作 - var不可访问
  • 包含gradle脚本kotlin文件的IntelliJ自动完成
  • 删除Kotlin中另一个字符串中出现的字符
  • 用多参数扩展类
  • kotlin协程 - 阻塞线程,直到收到超时或消息计数
  • 我怎样才能避免在Kotlin空属性
  • main和regular函数有什么区别?
  • 如何获得测试覆盖或Jacoco为Kotlin数据类忽略
  • Kotlin language will be the best programming language for Android.