我正在使用此代码打开具有指定应用程序的文件:
File file = new File("/path/to/file.ext");
if(file.exists())
{
Uri path=Uri.fromFile(file);
Intent intent=new Intent(Intent.ACTION_VIEW, path);
// intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setPackage("com.example.myapp");
MimeTypeMap mime = MimeTypeMap.getSingleton();
String ext=file.getName().substring(file.getName().indexOf(".")+1);
String type = mime.getMimeTypeFromExtension(ext);
intent.setDataAndType(Uri.fromFile(file),type);
try
{
startActivity(intent);
}
catch(ActivityNotFoundException e)
{
Toast.makeText(this, "No software found", Toast.LENGTH_SHORT).show();
}
它适用于 .zip 文件,但不适用于非常规的文件扩展名,它会抛出 AcivityNotFoundException。有没有办法以编程方式将文件类型关联到应用程序,或强制应用程序打开给定文件?