Android Studio ACTION_VIEW需要哪些Google表格信息?

xt0899hw  于 2023-05-29  发布在  Android
关注(0)|答案(2)|浏览(164)

我的应用程序创建了一个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在他们的手机上,所以我希望我的应用程序能够查看由谷歌表格创建的文件

wwwo4jvm

wwwo4jvm1#

Google表格似乎要求您在ACTION_VIEW intent上设置数据和MIME类型。
替换如下:

openIntent.setData(data);

用这个:

openIntent.setDataAndType(data, mimeType)

其中mimeType是您发送的文件的MIME类型-例如,“text/csv”。

2admgd59

2admgd592#

添加这一行;它将工作:

intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

相关问题