gpt4 book ai didi

android - Google Drive PDFViewer 未加载 PDF 文件

转载 作者:行者123 更新时间:2023-11-29 20:15:55 31 4
gpt4 key购买 nike

嗨,我有一个奇怪的问题。我有一个 Android 应用程序,其中包含与 apk bundle 在一起的 PDF 文件。在 UI 上,我显示文件的表格列表,用户可以单击并使用他们选择的查看器加载 pdf 文件。在 5.x.x 上,它可以与默认安装的 Google Drive 一起正常工作。但是在 marshmallow (6.x) 上,当我选择 Google Drive 打开文件时,我的权限被拒绝了。这就是我正在做的,我首先将它复制到 Environment.getExternalStorageDirectory() 然后将 File 对象传递给 Intent,如下所示。还有一个问题,如果我在打开过程中选择 DropBox 查看器,它就会起作用。如果我选择 OfficeSuite,它就可以工作。但是 Google Drive 和 Microsoft OneDrive 无法打开同一个文件。鉴于 Marshmallow 权限模型已更改,我此时的假设是 DropBox 和 OfficeSuite 可能对 Marshmallow 具有更高级别的权限?谢谢

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // Not needed?

这是日志条目

    11-24 19:51:34.446 879-897/? I/ActivityManager: Displayed com.google.android.apps.docs/com.google.android.apps.viewer.PdfViewerActivity: +522ms
11-24 19:51:34.449 3558-3558/? I/Keyboard.Facilitator: onFinishInput()
11-24 19:51:34.533 3180-3190/? I/art: Background partial concurrent mark sweep GC freed 23577(1876KB) AllocSpace objects, 2(40KB) LOS objects, 40% free, 23MB/39MB, paused 909us total 103.503ms
11-24 19:51:34.743 8782-9759/? E/DisplayData: openFd: java.io.FileNotFoundException: Permission denied
11-24 19:51:34.743 8782-9759/? E/PdfLoader: Can't load file (doesn't open) Display Data [PDF : 008AlAnfaal.pdf] +UriOpenable, uri: file:///storage/emulated/0/Android/data/org.eicsanjose.qicsea3/cache/008AlAnfaal.pdf
11-24 19:51:34.831 879-12253/? W/ActivityManager: Permission Denial: Accessing service ComponentInfo{com.google.android.music/com.google.android.music.dial.DialMediaRouteProviderService} from pid=4391, uid=10143 that is not exported from uid 10060
11-24 19:51:34.887 879-2823/? I/InputReader: Reconfiguring input devices. changes=0x00000010

最佳答案

Forget the Storage Permission Talk 中所述(和 slides )和 sharing files training ,您应该将文件 URI 发送到其他应用,因为它假定其他应用具有读取存储权限。您应该改用 FileProvider创建一个所有应用程序都可以读取的 URI,无论是否具有存储权限。

关于android - Google Drive PDFViewer 未加载 PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33908326/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com