权限对话框在安卓中未显示

3

我正在使用 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();
}
}  

我做错了什么?

1个回答

3

在请求权限时,您需要调用.check()方法。

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

谢谢兄弟,我忘记添加check()了。还有一件事,当我拒绝时,再次点击按钮时对话框不会显示。 - Digvijay
请让我检查一下 - Zain
1
@Digvijay...在onPermissionRationaleShouldBeShown()中调用PermissionToken.continuePermissionRequest() - Zain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接