“file://”上的startActivity链接崩溃

时间:2011-04-13 05:07:58

标签: android eclipse android-intent

我正在尝试创建只在sdcard上打开文件的程序。我尝试打开mp3,mp4和apk - 下面的代码总是出乎意料地崩溃。

  String _path = "file:///sdcard/1.apk";

     Uri outputFileUri = Uri.parse(_path);
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);

市场联系也崩溃了。但是当我设置_path =“http://google.com”时 - 浏览器会正常打开。如何使这段代码有效?

1 个答案:

答案 0 :(得分:0)

如果您正在尝试安装apk,则需要使用以下内容:

String fileName = Environment.getExternalStorageDirectory() + "/1.apk";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
startActivity(intent);

如果您尝试启动应用程序(安装后),则:

Intent intent = new Intent();
intent.setClassName("com.pkg.addr", "com.pkg.addr.MainActivity");
startActivity(intent);

如果您尝试启动播放器播放mp3文件:

Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
Uri data = Uri.parse("file:///sdcard/1.mp3");
intent.setDataAndType(data,"audio/mp3");
startActivity(intent); 

希望有所帮助。