我在使用隐式意图在 android 中编辑文件时遇到了一个问题,它得到了解决,它花了很多时间和排列组合来解决它,但最后我还是有疑问,问题得到了解决,但我想知道为什么解决的问题没有解决。
如果您对此有任何线索,请告诉我。
来到我的问题。
我有一个活动。我在活动中有一个按钮。我想打开存储在“/mnt/sdcard/xxx/log.txt”位置的预先存在的日志文件(这是一个文本文件示例 log.txt)
以下是我编写的隐式意图代码,我最终得到了一个异常“未找到活动”
code1:我尝试过并遇到异常
Uri uri = Uri.parse("file:///sdcard/xxx/log.txt");
Intent viewTestLogFileIntent = new Intent(Intent.ACTION_EDIT,uri);
viewTestLogFileIntent.setType("text/plain");
code2:我尝试过并遇到异常
Uri uri = Uri.parse("file:///sdcard/xxx/log.txt");
Intent viewTestLogFileIntent = new Intent(Intent.ACTION_EDIT);
viewTestLogFileIntent.setData(uri);
viewTestLogFileIntent.setType("text/plain");
code3:我尝试过并且工作正常
Uri uri = Uri.parse("file:///sdcard/xxx/log.txt");
Intent viewTestLogFileIntent = new Intent(Intent.ACTION_EDIT);
viewTestLogFileIntent.setDataAndType(uri,"text/plain");
我有两个疑问是
首先,我的文件位于 /mnt/sdcard/xxx/log.txt 这我可以在 Eclipse 的 DDMS 视图中的文件系统中清楚地看到,但是当我将 uri 中的文件链接作为“文件: ///sdcard/xxx/log.txt" 我从路径中跳过 /mnt
code1 和 code2 有什么问题?我在 code3 中设置的数据和类型是什么,我设置相同的数据和类型,但分别使用不同的方法,如 setData() 和 setType()。为什么它们(代码 2 和代码 1)不起作用?为什么code3工作?