Android上的iOS'QLPreviewController或UIDocumentInteractionController的对应部分是什么?

Kru*_*lur 11 android xamarin.ios xamarin.android xamarin

在iOS上,使用QLPreviewController或预览许多类型的文件非常容易UIDocumentInteractionController.如何在Android上实现类似的功能以及支持哪些文件格式?

Edi*_*son 8

坏消息:没有内置(SDK级别)预览组件/ View供您使用.

好消息:Android支持Intents,允许您利用其他应用程序为您完成工作并返回具有所请求文件类型的选定文件.

您可以做的一些事情取决于您的目标:

  1. API 19+:在具有API 19的设备上,您应该使用存储访问框架(https://developer.android.com/guide/topics/providers/document-provider.html)所有预览等都将在响应时完成应用程序.

    您将看到使用Intent.ACTION_OPEN_DOCUMENT.

  2. 对于旧设备:您可以使用可以使用的可选文件类型和类别.这将打开内置文件选择器或第三方应用程序.

    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    startActivityForResult(intent, REQUEST_CODE);
    
    Run Code Online (Sandbox Code Playgroud)

    **注意你可以在这里创建一个Intent选择器.

  3. 对于没有任何可以响应Intent的应用程序的设备:您可以捆绑预先构建的内容(https://code.google.com/p/android-file-dialog/)或根据文件类型,您可以查询内容数据库中的媒体文件,并使用一个漂亮的UI自己显示它们.

有关如何使用Intent及其工作原理的其他参考:http://developer.android.com/guide/components/intents-filters.html