Android 在浏览器上查看txt文件会导致应用程序崩溃,无法找到包含/storage/simulated的已配置根目录/
我试图通过浏览器上的文件提供程序打开log.txt,但应用程序因IllegalArgumentException而崩溃 下面我复制了我正在使用的代码片段。如果你需要更多的细节,请告诉我Android 在浏览器上查看txt文件会导致应用程序崩溃,无法找到包含/storage/simulated的已配置根目录/,android,Android,我试图通过浏览器上的文件提供程序打开log.txt,但应用程序因IllegalArgumentException而崩溃 下面我复制了我正在使用的代码片段。如果你需要更多的细节,请告诉我 String mReportsONSD = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "reports" +
String mReportsONSD = Environment.getExternalStorageDirectory().getAbsolutePath()
+ File.separator
+ "reports"
+ File.separator;
String Logfile = "logd.txt";
File newFile = new File(mReportsONSD+Logfile);
Intent intent = new Intent(Intent.ACTION_VIEW, null);
intent.setComponent(ComponentName.unflattenFromString("com.android.chrome/com.google.android.apps.chrome.Main"));
Uri logURI = FileProvider.getUriForFile(this, getPackageName(), newFile);
intent.setData(logURI );
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
startActivity(intent);
path.xml从外部存储器访问文件
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-files
name="external_files"
path="/" />
</paths>
中没有名为
的外部文件。将其更改为外部路径
:
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
name="external_files"
path="/" />
</paths>
此外:
- 您可以替换新的意图(Intent.ACTION\u视图,空)代码>具有
新的意图(意图.行动\u视图)代码>
Environment.getExternalStorageDirectory()
,因此我强烈建议您将内容存储在其他地方(例如,通过Context
上的getExternalFilesDir()
标识的目录)
感谢您的更正,这不是崩溃,但我得到了这个urlcontent://com.stylingandroid.fileprovider/external_files/reports/logd.txt
错误Err:FILE\u未找到
我试图设置权限grantUriPermission(“com.android.chrome”),logURI/*/storage/simulated/0/reports/logd.txt*/,Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION)代码>还是同一个错误,我是不是遗漏了什么?@user755:也许你那里没有文件。此外,您正试图使用setComponent()
入侵Chrome,并且不需要Chrome来支持您的请求。我认为必须调用setComponent()
才能通过intent withpackagename
和acitvityname
@user755启动其他应用程序:“intent如何知道在不调用setComponent()的情况下启动哪个应用程序?”——一个隐式的intent
(一个没有组件的)被Android处理得非常好。Android会查看哪些活动支持intent
结构(ACTION\u VIEW
,内容:
Uri
,MIME类型,等等).请参阅。许多Android应用程序开发书籍和课程也介绍了这一点。
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
name="external_files"
path="/" />
</paths>