我目前正在开发一个应用程序,它从 android 的 sqlite 数据库创建一个 excel 文件(使用 apache poi)。一切都运行良好,除了我无法将文件发送到另一个应用程序。我实现了一个文件提供程序,因此我的其他应用程序可以拥有我的文件的权限:
AndroidManifest.xml:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.example.ria.masterdetailnoten"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"></meta-data>
</provider>
文件路径.xml:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<files-path name="backup" path="backup/"/>
</paths>
ExcelFile.java:
Uri uriFile = FileProvider.getUriForFile(ct, "com.example.ria.masterdetailnoten", backupFile);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setDataAndType(uriFile, "application/vnd.ms-excel");
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.createChooser(intent, "Choose");
ct.startActivity(intent);
我确定我的文件正在创建中,我可以使用 Apache POI 再次读取它。因此,唯一不起作用的是将意图发送到另一个应用程序。
例如,如果我在意图选择器中选择 Google Drive,则会出现以下错误:“上传失败:请求不包含数据。”
如果我使用邮箱应用程序打开它,则会出现以下错误:“邮箱无法读取所选文件”
我希望你们能帮助我,感谢你们的帮助!