1

可能重复:
使用已安装的文件编辑器(如果有)编辑纯文本文件的意图

我正在尝试打开一些已下载的文本文件。当我有意图地开始活动时,它会给出 ActivityNotFound 异常。

try {
    Uri path = Uri.parse(path+"/sampletext.txt");
    Intent intent = new Intent(Intent.ACTION_VIEW);
    PackageManager packageManager = ctx.getPackageManager();
    intent.setType("text/plain") ;
    List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
    if (list.size() > 0 ) {
        intent.setDataAndType(path, "text/plain");
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        ctx.startActivity(intent) ;
    } 

} catch (Exception e){
    e.printStackTrace() ;
}

调试的时候发现list.size是1。

我还缺少其他信息吗?

任何一种观点都会对我有所帮助。

谢谢。

4

1 回答 1

2

当清单文件中没有声明匹配的活动或没有被另一个应用程序注册为共享活动时,通常会遇到 ActivityNotFound 异常。

您可能需要编辑路径:

Uri path = Uri.parse("file://" + path + "/sampletext.txt");

更好的方法是使用便捷方法:

Uri data = Uri.fromFile(file);

但是您需要创建一个 File 对象才能使用该方法

于 2012-09-12T19:55:19.690 回答