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

时间:2016-05-15 05:24:31

标签: android android-permissions

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

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

当用户点击一个按钮并接受权限然后两个方法一个接一个地运行时,会发生什么。这显然不是我想要的行为。

我非常感谢有关如何处理这种情况的任何帮助。 谢谢。

2 个答案:

答案 0 :(得分:1)

实际上,您所做的是使用不同的函数名称两次请求相同的权限,因此请删除openCameraToCaptureImage()方法或openCameraToRecordVideo()方法。

答案 1 :(得分:1)

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