Icebreaker7

 

Android中拨打电话的权限名

在学习《第一行代码》(第三版)的8.8.2小节中,有一个RuntimePermissionTest项目,这个项目用于学习运行时权限的使用方法,其中书上的部分代码如下:

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
makeCall.setOnClickListener {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CALL_PHONE), 1)
} else {
call()
}
}
}
...
}

但是在实际运行中,发现报如下错误(我这里Android Studio的版本是4.0.1,尚不清楚其他版本是否会出现此问题):

解决方案:

在Manifest前面加上android.,即

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

报错消失,编译成功

posted on   Icebreaker_7  阅读(129)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程

导航

统计

点击右上角即可分享
微信分享提示