首页 > 解决方案 > 权限对话框未在 android 中显示

问题描述

我在我的应用程序中使用Dexter 库获取相机权限。当用户单击按钮时,我想检查权限,但是当我单击按钮时,没有检查权限。

下面是我的代码:

class MainActivity : AppCompatActivity(), PermissionListener {
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    choose.setOnClickListener {
        Toast.makeText(applicationContext,"HEllo",Toast.LENGTH_SHORT).show();
        Dexter.withActivity(this)
            .withPermission(android.Manifest.permission.CAMERA)
            .withListener(this)
    }
}

override fun onPermissionGranted(response: PermissionGrantedResponse?) {
    Toast.makeText(applicationContext,"Granted",Toast.LENGTH_SHORT).show();
}

override fun onPermissionRationaleShouldBeShown(
    permission: PermissionRequest?,
    token: PermissionToken?
) {

}

override fun onPermissionDenied(response: PermissionDeniedResponse?) {
    Toast.makeText(applicationContext,"Denied",Toast.LENGTH_SHORT).show();
}
}  

我究竟做错了什么?

标签: androidkotlinandroid-library

解决方案


您需要在请求权限时调用 .check()

Dexter.withActivity(this)
            .withPermission(android.Manifest.permission.CAMERA)
            .withListener(this).check()

推荐阅读