以下为源码,在平板电脑上安卓10系统运行打开word出错,错误如下图:
https://files.cnblogs.com/files/blogs/782609/Myopenword.zip?t=1727162426&download=true
要提供 Provider首先你得自己能打开读取文件. 你先自己读取文件试试看能不能成功. 另外file_paths.xml里的path好像也不对. 把这个也加上试试
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) {
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
intent.setData(Uri.parse("package:" + BuildConfig.APPLICATION_ID));
startActivity(intent);
}
}
代码改了,但点了按钮没反应
@tea2007: 那个path应该填 "检测报告", 把这一段直接放onCreate吧
if (!Environment.isExternalStorageManager()) {
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
intent.setData(Uri.parse("package:" + BuildConfig.APPLICATION_ID));
startActivity(intent);
}
@www378660084:
二图红线错误,放onclick内 也一样红线错误
@tea2007: 那就跟这个无关,android 10应该没这个api.还是加上判断吧.你最好自己打开文件读下看看能不能成功.自己有权限了,才能提供给其他程序读写.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) {
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
intent.setData(Uri.parse("package:" + BuildConfig.APPLICATION_ID));
startActivity(intent);
}
}
@www378660084:
点了没反应,路径应该没错,我用原来的代码openWordFile(path);点击后,它有时会弹出word所在目录,但手动打开word文档,全变乱码了。
@tea2007: 打开还是用这个openWordFile(path); 那段代码只是权限相关的.
我的意思是让你在代码里读这个文件,看看报不报错误.
public void readFile(String path) {
String line = null;
try {
InputStreamReader fileReader = new InputStreamReader(new FileInputStream(path), "utf-8");
BufferedReader fp = new BufferedReader(fileReader);
line = fp.readLine();
Log.e(TAG, line);
} catch (IOException e) {
e.printStackTrace();
}
}
@www378660084: 执行下面这些都没报错
,只是安卓10会弹出无法打开对话框
@tea2007: 你看看logcat,android的错误都在logcat里.
@www378660084: 不大会看,请问有错误吗?
@tea2007: 没有权限,先把异常解决了吧. 参考这个看看 https://blog.csdn.net/m0_45939328/article/details/123563889
@www378660084: 谢谢朋友,问题找到了,与代码无关。是安卓10系统装的wps office版本有问题,换了一个版本就可以用代码打开word了。
@qricis,@www378660084
– tea2007 2个月前