问题描述
在我的 Android 应用中,我将数据保存在 CSV 文件中,并且保存正确。但是,当我通过电子邮件或 Google 云端硬盘共享 CSV 文件时,它说无法附加文件作为错误。
请问有人能解决这个问题吗?
这是我的代码:
MainActivity.java
public void export(View view){
//generate data
StringBuilder data = new StringBuilder();
data.append("Time,distance");
for(int i = 0; i<5; i++){
data.append("\n"+String.valueOf(i)+","+String.valueOf(i*i));
}
try{
//saving the file into device
FileOutputStream out = openFileOutput("data.csv",Context.MODE_PRIVATE);
out.write((data.toString()).getBytes());
out.close();
//exporting
Context context = getApplicationContext();
File filelocation = new File(getFilesDir(),"data.csv");
Uri path = FileProvider.getUriForFile(context,"com.example.exportcsv.fileprovider",filelocation);
Intent fileIntent = new Intent(Intent.ACTION_SEND);
fileIntent.setType("text/csv");
fileIntent.putExtra(Intent.EXTRA_SUBJECT,"Data");
fileIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
fileIntent.putExtra(Intent.EXTRA_STREAM,path);
startActivity(Intent.createChooser(fileIntent,"Send mail"));
}
catch(Exception e){
e.printstacktrace();
}
}
provider_paths.xml
<paths>
<files-path
name="data"
path="."/>
</paths>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.exportcsv">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.example.exportcsv.fileprovider"
android:grantUriPermissions="true"
android:exported="false">
<Meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
</application>
</manifest>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)