如何从其他应用程序打开的文件中获取数据?例如,我从默认文件管理器打开一个文件,然后open with
打开我的应用程序,然后如何从我打开的文件中获取数据?
答案 0 :(得分:2)
我猜测您的应用包含ACTION_VIEW
<intent-filter>
的活动。
如果是这样,您可以在用于开始活动的getData()
上调用Intent
,以获取指向用户希望查看的内容的Uri
。您可以在getContentResolver()
或其他Activity
上调用Context
以获取ContentResolver
对象。在openInputStream()
上调用ContentResolver
,以获取内容上的InputStream
。理想情况下,可以在后台线程上执行该操作。
This sample app和this sample app(来自this book的示例)显示了如何使用ContentResolver
来获取InputStream
所标识的内容Uri
}。就我而言,我使用的是ACTION_OPEN_DOCUMENT
而不是响应ACTION_VIEW
,但是其余的都是相同的。
请注意,您的观看活动有两个Intent
对象的来源:
最初启动活动并创建实例时,可以通过Intent
getIntent()
如果用户打开另一段内容,并且您的活动的现有实例被重用,则该活动将使用onNewIntent()
进行调用,并且您将通过使用的Intent
为此特定请求