在辅助ACTION_PICK意图后,Android应用程序无法响应

时间:2016-06-07 14:54:06

标签: android android-fragments android-intent android-camera

我创建了带有多个图像添加对话框的片段。每张图片都可以通过相机或图库添加。在这两种情况下,我只能添加一个图像 - 在解除图库/相机视图应用程序停止响应后。 这就是我如何创建相机和画廊选择意图:

//permissions request in other methods
private void pickImage() {
    Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
    photoPickerIntent.setType("image/*");
    startActivityForResult(photoPickerIntent, SELECT_GALLERY);
}

private void openCamera() {
    if (PermissionsHelper.checkStoragePermissions(ReportFragment.this)) {
        Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        Uri fileUri = getOutputMediaFileUri();
        fileFromCamera = fileUri.getPath();
        takePicture.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
        startActivityForResult(takePicture, SELECT_PHOTO);
    } else {
        PermissionsHelper.requestStoragePermissions(this, CAMERA_STORAGE_PERMISSION_REQUEST);
    }
}

以下是处理结果的方法:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode != Activity.RESULT_OK) {
        return;
    }
    if (requestCode == SELECT_GALLERY) {
        Uri selectedImageAddress = data.getData();
        addPathsIfUnique(getRealPathFromURI(selectedImageAddress));
    }
    if (requestCode == SELECT_PHOTO) {
        if (PermissionsHelper.checkStoragePermissions(this)) {
            if(fileFromCamera != null) {
                addPathsIfUnique(fileFromCamera);
            }
        } else {
            PermissionsHelper.requestStoragePermissions(this, CAMERA_STORAGE_PERMISSION_REQUEST);
        }
    }
}

private void addPathsIfUnique(String path) {
    if(path == null)
        return;
    for(String currentPath : photoPaths) {
        if(currentPath.equals(path)) {
            return;
        }
    }
    photoPaths.add(path);
    shopChanged(point);
}

在shopChanged函数中,我重新创建了ListView单元格。我也试图完全删除ListView,用片段中的单个按钮替换它,但结果是相同的:在第二次打开画廊或相机关闭后,应用程序变得没有响应。即使OnResume断点也没有被解雇。但在首次开放后所有作品都很好。 这种行为可能是什么原因?

1 个答案:

答案 0 :(得分:0)

找到解决方案:这是新的Google Play服务错误 - 在降级到8.4.0后修复了问题。如果它尚未提交,将搜索他们的bugtracker并提交bug