Android 应用程序在辅助 ACTION_PICK 意图后没有响应
Posted
技术标签:
【中文标题】Android 应用程序在辅助 ACTION_PICK 意图后没有响应【英文标题】:Android application not responds after secondary ACTION_PICK intent 【发布时间】:2016-10-07 13:18:05 【问题描述】:我创建了带有多个图像添加对话框的片段。每个图像都可以通过相机或图库添加。在这两种情况下,我只能添加一张图片 - 在关闭图库/相机视图应用程序停止响应后。 这就是我创建相机和图库选择意图的方式:
//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 断点也没有触发。但是第一次打开后一切正常。 这种行为可能是什么原因?
【问题讨论】:
您的onRequestPermissionsResult
是什么样的?我猜你在某处有一个无限循环。
看起来像这样:pastebin.com/eY9QjBM5 但是在授予所有权限之后,错误仍然存在。现在我把这个方法注释掉了,即使在第一次打开画廊后,应用程序也不再负责:) 现在我必须创建新的空项目并逐步复制现有代码以查找原因
你解决这个问题如果是的话给我解决方案我也面临这个问题
查看下面的评论 - 降级到 google play services 8.4.0 已解决问题
【参考方案1】:
找到了解决方案:这是新的 Google Play 服务错误 - 降级到 8.4.0 后已修复该问题。如果尚未提交,将搜索他们的 bugtracker 并提交错误
【讨论】:
以上是关于Android 应用程序在辅助 ACTION_PICK 意图后没有响应的主要内容,如果未能解决你的问题,请参考以下文章
如何检查其他应用程序是不是在 Android 中使用辅助功能(BIND_ACCESSIBILITY_SERVICE)权限