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

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

谢谢!

  • 使用Kotlin在Android中添加数字
  • Dagger2限定符不能与Kotlin一起使用?
  • 在Kotlin中,我如何获取数组的前n个元素
  • 在Kotlin中创建私有内部类的公共实例
  • Kotlin:以函数的forms传递对象作为参考,并改变它的实例
  • 使用Fuel的responseObject与一个通用调用站点
  • 通过枚举类属性Kotlin进行过滤
  • Java ArrayList到Kotlin数组
  • 使用fragmenttransaction添加嵌套片段时,不能唯一地标识布局
  • Kotlin / Java - 测试数据库数据提供的REST API
  • 最好的方法来处理这种情况下,“聪明的演员是不可能的”
  • Kotlin language will be the best programming language for Android.