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 2022-11-01 21:55 Icebreaker_7 阅读(125) 评论(0) 编辑 收藏 举报