相关疑难解决方法(0)

如何使用ACTION_OPEN_DOCUMENT显示更多提供者

我想使用作为Storage Access Framework一部分提供的android系统对话框来打开文件.我这样做

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("application/pdf");
startActivityForResult(intent, EDIT_REQUEST);
Run Code Online (Sandbox Code Playgroud)

然后处理返回的URI onActivityResult().

问题是,在结果菜单中,我得到的内容提供商远远少于我的预期.仅限Google云端硬盘和下载(请参阅下面的左侧屏幕截图).其他人,如Dropbox,Solid Explorer,......都没有显示.

我怀疑原因是这些应用程序根本没有设置必要的intent过滤器显示在此列表中.

但是,其他应用程序(例如Kaiten Mail或Chrome)以某种方式设法显示系统对话框,其中包含完全实现的内容提供程序,位于列表顶部,然后其他应用程序(如Dropbox和Solid Explorer)在下方用细条分隔(请参阅正确的屏幕截图).

我怎么能得到这种行为?

比较我得到的行为(左)和我想要的行为(右)

android android-contentprovider

11
推荐指数
1
解决办法
1201
查看次数

无法从新的 Google 相册应用中同时选择照片和视频

Google 相册更新后,我无法同时选择视频和照片。如果我使用单个“video/*”或“image/*”意图,它会像往常一样工作。在视频照片意图中,它忽略第二个参数。如果第一个是视频 - 它将是视频意图,如果是照片 - 您会建议选择照片。

    Intent intent = new Intent(Intent.ACTION_GET_CONTENT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    intent.setAction(Intent.ACTION_PICK);
    intent.setType("video/*,image/*");
    intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, getFileUri());
    startActivityForResult(intent, 911);
Run Code Online (Sandbox Code Playgroud)

你知道如何让它工作吗?

android google-photos

5
推荐指数
1
解决办法
448
查看次数