android – 两种方法在授予权限后运行

我正在使用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.定义了一个私有字段lastAction.使用AfterPermissionGranted注释编写一个新函数openCamera,检查是否设置了lastAction,如果是,则调用相关函数.在每个openCameraX中,检查您是否拥有相机权限,如果没有,请更新lastAction并启动请求相机权限.

点赞