AfterPermissionGranted

AfterPermissionGranted

我正在使用 Google 的 EasyPermissions 库。在我的应用程序中,我有两个按钮,一个用于录制视频,一个用于捕获图像。由于两者都需要相机权限,因此它们都用 @AfterPermissionGranted 进行了注释。

所以我录制视频的方法是这样的:

@Override
@AfterPermissionGranted(RC_CAMERA_PERM)
public void openCameraToRecordVideo() {
    if (EasyPermissions.hasPermissions(this, Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
// Code here
}

同样用于拍照:
@Override
@AfterPermissionGranted(RC_CAMERA_PERM)
public void openCameraToCaptureImage() {
    if (EasyPermissions.hasPermissions(this, Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
// Code here
}

它们都带有 Permissions 注释,因为我不知道哪个用户会先点击。

发生的情况是,当用户单击一个按钮并接受权限时,两种方法都会一个接一个地运行。这显然不是我想要的行为。

我真的很感激有关如何处理这种情况的任何帮助。
谢谢你。

最佳答案

从两个 openCameraX 函数中删除 AfterPermissionGranted。定义了一个私有(private)字段 lastAction。编写一个带有 AfterPermissionGranted 注释的新函数 openCamera ,检查是否设置了 lastAction ,如果是,则调用相关函数。在每个 openCameraX 中,检查您是否有相机权限,如果没有,更新 lastAction 并开始请求相机权限。

10-06 03:18