gpt4 book ai didi

java - 如何创建内容提供程序以通过隐式 Intent 与另一个应用程序共享 PDF 文件?

转载 作者:行者123 更新时间:2023-12-01 17:48:40 25 4
gpt4 key购买 nike

我正在为我的学校做项目。在此应用程序中,我从 Firebase 下载 pdf 文件并将其存储在应用程序的外部目录中。下载后,我想通过其他pdf阅读器应用程序的隐式 Intent 来显示下载的pdf。我连续两天在网上搜索如何创建内容提供程序,但所有教程都很旧并且使用 android.support.v4 内容提供程序,我不知道如何创建自定义内容提供程序。我尝试使用 androidx.core.content.fileprovider,它还创建了内容 uri,但是启动时,pdf 阅读器屏幕弹出,但没有显示任何内容,只显示文件标题。

fileUri.toString-content://com.syrous.studentlibraryjava.fileprovider/document/mse1_dagaeg.pdf 的输出

    Uri fileUri = getUriForFile(getApplicationContext(), getPackageName()+".fileprovider", localFile); //This is the in build function, just accepted import. 
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(fileUri, "application/pdf");
i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

这是 list 中提供者的声明---->

 <provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.syrous.yccestudentlibraryjava.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"/>
</provider>

这是文件路径----->

  <paths>
<external-files-path
name="document"
path="mse1/"/>
</paths>

我不确定我声明的 file_path 是否正确。我的 pdf 文件位于 external_folder/files/mse1/file_to_open 中。如果file_path有任何更正,请建议我。

我有权读取和写入 list 中声明的​​外部存储,并且也请求了它

大家帮帮我吧!! Emulator Image

最佳答案

android:authorities="com.syrous.yccestudentlibraryjava.fileprovider 不匹配 content://com.syrous.studentlibraryjava.fileprovider/document/mse1_xfaefga.pdf

关于java - 如何创建内容提供程序以通过隐式 Intent 与另一个应用程序共享 PDF 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60824818/

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