如何在Android中以任何扩展名打开文件?

The*_*ash 7 android

你好读者和助手。

(我是新手)

说明:

我有1个应用程序,用户可以在其中上传任何扩展名的文件(.png.mp3.txt.pdf.bmp.apk等。)

简而言之-> **带有任何exe ..!**的文件

这些文件显示在列表视图中。

当用户在列表视图意图中的项目上“点击”或“单击”时,将被称为(android.content.Intent.ACTION_VIEW),并且应打开设备中安装的相应应用程序。

例如

如果用户单击nature.png,则将调用意图并建议诸如Gallery,PS Touch..etc之类的应用程序(如屏幕截图1所示

如果用户单击book.pdf,则将调用意图并建议诸如MuPdf,Polaris Office,apv..etc之类的应用程序(如屏幕截图2所示

对于.txt,.pdf,.png,.jpg-我已经通过设置mime类型解决了这个问题intent.setDataAndType(Uri.fromFile(file), mime);

并且为URL

Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(https://www.google.co.in/));
Run Code Online (Sandbox Code Playgroud)

它工作正常,但对于文件扩展名的其余部分,我仍然感到困惑-该怎么办?怎么办?

我已经四处搜寻,但是无法令人满意地回答..!

我的问题:

  1. 我如何为任何文件扩展名编写代码,以便它可以调用设备中安装的各个应用程序?
  2. 如何在XML中定义自定义文件扩展名?

Ego*_*gor 5

以下代码适用于每种文件类型:

try {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(Uri.fromFile(file), fileMimeType);
    startActivity(intent);
} catch (ActivityNotFoundException e) {
    // no Activity to handle this kind of files
}
Run Code Online (Sandbox Code Playgroud)

当然,Activity系统中应该有一个知道如何处理某种类型文件的。希望这可以帮助。