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:监听辅助端口

如何检查其他应用程序是不是在 Android 中使用辅助功能(BIND_ACCESSIBILITY_SERVICE)权限

Android 应用程序在辅助 ACTION_PICK 意图后没有响应

如何在 Android 中制作工具栏(如辅助操作栏)?

如何利用android辅助功能

Android 应用:将用户带到我的应用的辅助功能设置页面