授予权限后两种方法 运行
Both methods run after permissions granted
我正在使用 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
}
它们都带有权限注释,因为我不知道哪个用户会先点击。
当用户单击一个按钮并接受权限时会发生什么,然后两个方法运行一个接一个。这显然不是我想要的行为。
对于如何处理这种情况的任何帮助,我将不胜感激。
谢谢。
实际上,您正在做的是使用不同的函数名称请求相同的权限两次,因此删除 openCameraToCaptureImage()
方法或 openCameraToRecordVideo()
方法。
从两个 openCameraX 函数中删除 AfterPermissionGranted。定义了一个私有字段 lastAction。使用 AfterPermissionGranted 注释编写一个新函数 openCamera,检查是否设置了 lastAction,如果是,则调用相关函数。在每个openCameraX中,检查是否有相机权限,如果没有,更新lastAction并开始请求相机权限。
我正在使用 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
}
它们都带有权限注释,因为我不知道哪个用户会先点击。
当用户单击一个按钮并接受权限时会发生什么,然后两个方法运行一个接一个。这显然不是我想要的行为。
对于如何处理这种情况的任何帮助,我将不胜感激。 谢谢。
实际上,您正在做的是使用不同的函数名称请求相同的权限两次,因此删除 openCameraToCaptureImage()
方法或 openCameraToRecordVideo()
方法。
从两个 openCameraX 函数中删除 AfterPermissionGranted。定义了一个私有字段 lastAction。使用 AfterPermissionGranted 注释编写一个新函数 openCamera,检查是否设置了 lastAction,如果是,则调用相关函数。在每个openCameraX中,检查是否有相机权限,如果没有,更新lastAction并开始请求相机权限。