我的应用程序创建了一个Excel文件,可以通过Google表格和MS-Excel打开。但是当我通过我的应用程序使用ACTION_VIEW打开它时,Excel文件无法通过Google Sheets查看,但它在MS-Excel中运行良好。当通过Google Sheet查看该文件时,它显示一条消息 “Google Sheets无法打开您的电子表格”。
我尝试清除Excel文件中的所有数据,只查看空文件,但仍然遇到了Google表格的这个问题。
Uri data = FileProvider.getUriForFile(dbActivity.getApplicationContext(),"com.aaa.fileprovider", createdFile);
dbActivity.getApplicationContext().grantUriPermission(dbActivity.getPackageName(), data, FLAG_GRANT_READ_URI_PERMISSION);
dbActivity.getApplicationContext().grantUriPermission(dbActivity.getPackageName(), data, FLAG_GRANT_WRITE_URI_PERMISSION);
Intent openIntent = new Intent();
openIntent.setType(applicationType);
openIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_GRANT_READ_URI_PERMISSION);
openIntent.setAction(Intent.ACTION_VIEW);
openIntent.setData(data);
openIntent.putExtra(Intent.EXTRA_STREAM, data);
try {
dbActivity.startActivity(openIntent);
}
catch (Exception ex){
Toast toast = Toast.makeText(dbActivity, "No applications to open the file.", Toast.LENGTH_LONG);
toast.show();
}
大多数人没有MS-Excel在他们的手机上,所以我希望我的应用程序能够查看由谷歌表格创建的文件
2条答案
按热度按时间wwwo4jvm1#
Google表格似乎要求您在ACTION_VIEW intent上设置数据和MIME类型。
替换如下:
用这个:
其中
mimeType
是您发送的文件的MIME类型-例如,“text/csv”。2admgd592#
添加这一行;它将工作: