gpt4 book ai didi

java - 无法使用 Intent.ACTION_VIEW 在 Android 上打开 excel 文件

转载 作者:行者123 更新时间:2023-12-04 21:31:18 31 4
gpt4 key购买 nike

我试图让用户在我的应用程序中导出一个 excel 文件,并让应用程序自动打开创建的 excel 文件。使用 jxl 成功创建和存储了 excel 文件,但是当我尝试使用 Hancom Office 编辑器打开它时,除了我的屏幕出现黑色覆盖之外,没有任何 react 。这是一个GIF:
enter image description here
我不知道是什么原因造成的,也无法在网上找到任何关于它的信息。
我正在使用 here 中接受的答案支持我的目标 SDK 28。

我的导出方法:

 public void onExport(View view){
try {
//write changes to excel file(changes made outide of function)
workbook.write();
workbook.close();
Toast.makeText(getApplication(),
"Data Exported to Excel Sheet", Toast.LENGTH_SHORT).show();
findViewById(R.id.btn_export).setEnabled(false);

//set file to saved excel file
File file = new File(Environment.getExternalStorageDirectory(),
race.getName()+".xls");
Uri path = FileProvider.getUriForFile(getApplicationContext(), "com.something.racecalculator.fileprovider", file);
Intent intent = new Intent(Intent.ACTION_VIEW);
Log.i("path: ", path.toString());
intent.setDataAndType(path, "image/jpg");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
catch (ActivityNotFoundException e) {
Log.i("oh no:", "No application available to view excel");
}
}

我在 AndroidManifest.xml 中的提供程序标记(设置为的子项):
<provider
android:name=".GenericFileProvider"
android:authorities="com.something.racecalculator.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>

据我所知,我没有收到任何错误或警告。谢谢你的帮助。

最佳答案

我不确定到底是什么导致了这个问题,但是,我怀疑我可能有错误的文件路径。我更改了几件事(包括将 excel 文件保存到的位置。从 /storage/emulated/0/ 更改为 /storage/emulated/0/Samsung ),这是有效的:

Intent intent = new Intent(Intent.ACTION_VIEW);
File file = new File("/storage/emulated/0/Samsung"+File.separator + race.getName()+".xls");
Uri path = FileProvider.getUriForFile(getApplicationContext(), "com.something.racecalculator.fileprovider", file);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setDataAndType(path, "application/vnd.ms-excel");
startActivity(intent);

请记住,您需要实现 FileProvider如果您的目标 SDK 是 24 或更高版本

关于java - 无法使用 Intent.ACTION_VIEW 在 Android 上打开 excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51697232/

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