Android:通过其他应用程序打开文件

时间:2019-09-07 10:30:39

标签: android android-activity

如何从其他应用程序打开的文件中获取数据?例如,我从默认文件管理器打开一个文件,然后open with打开我的应用程序,然后如何从我打开的文件中获取数据?

1 个答案:

答案 0 :(得分:2)

我猜测您的应用包含ACTION_VIEW <intent-filter>的活动。

如果是这样,您可以在用于开始活动的getData()上调用Intent,以获取指向用户希望查看的内容的Uri。您可以在getContentResolver()或其他Activity上调用Context以获取ContentResolver对象。在openInputStream()上调用ContentResolver,以获取内容上的InputStream。理想情况下,可以在后台线程上执行该操作。

This sample appthis sample app(来自this book的示例)显示了如何使用ContentResolver来获取InputStream所标识的内容Uri }。就我而言,我使用的是ACTION_OPEN_DOCUMENT而不是响应ACTION_VIEW,但是其余的都是相同的。

请注意,您的观看活动有两个Intent对象的来源:

  • 最初启动活动并创建实例时,可以通过Intent

  • 使用该实例的getIntent()
  • 如果用户打开另一段内容,并且您的活动的现有实例被重用,则该活动将使用onNewIntent()进行调用,并且您将通过使用的Intent为此特定请求