gpt4 book ai didi

java - 如何使用文件提供程序从手机内部存储打开 ppt 文件

转载 作者:行者123 更新时间:2023-12-02 01:37:34 25 4
gpt4 key购买 nike

我正在尝试打开已存储在应用程序数据目录中的 pptx 文件,但打开该 ppt 文件时遇到错误。

我使用基本方法获取文件路径,然后获取 Uri,从那里将文件 Uri 传递给打开 pptx 文件的 Intent 。

由于我的文件位于 ma app-data(手机 - 内部存储)中,因此我想我不需要使用文件提供程序。但我仍然使用文件提供程序,但在打开文件时仍然遇到问题

我正在使用回收 View ,其中有卡片 View ,每个 View 都有一个用于打开特定文件的按钮,因此我使用适配器,viewholder....并且下面的 onclick 方法在适配器类下可用 -> onBindViewHolder 函数.

这是onClick函数,用于打开存储的特定文件

@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, final int position) {

holder.fOpen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
File file = new File(holder.mname.getContext().getFilesDir(), "Download");
File pptFile = new File(file,"Introduction.pptx");
Uri uri = FileProvider.getUriForFile(holder.mname.getContext(), "com.example.r_source.fileprovider", pptFile);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "application/pptx");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
mainActivity.startActivity(intent);
}
});
}

下面是文件提供者的文件路径xml

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path name="materials" path="Download/"/>
</paths>

下面是 list 文件

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

我收到的错误消息是:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=content://com.example.r_source.fileprovider/materials/Introduction.pptx typ=application/pptx flg=0x1 }

最佳答案

点击监听器中的权限是“com.example.r_source.provider”

提供者的权限是“com.example.r_source.fileprovider”

两者应该相同

关于java - 如何使用文件提供程序从手机内部存储打开 ppt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57509578/

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