Android 从文件浏览器获取意图后获取结果
我的应用程序可以保存和加载自定义类型的文件,比如.foo 我的清单上说:Android 从文件浏览器获取意图后获取结果,android,android-intent,Android,Android Intent,我的应用程序可以保存和加载自定义类型的文件,比如.foo 我的清单上说: <activity android:name=".activity.LoadActivity" android:label="dummy"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="
<activity
android:name=".activity.LoadActivity"
android:label="dummy">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="file" />
<data android:host="*" />
<data android:pathPattern=".*\\.foo" />
</intent-filter>
</activity>
这样,当浏览器试图打开.foo文件时,我就可以启动我的活动
但是在我的活动中,onCreate()
被调用,而不是onActivityResult()
,我如何获取被单击文件的路径
我已经查了很长一段时间的医生了,我想不出来
如何获取单击的文件的路径
您只需从传入的Intent
中检索它即可。只要打电话:
Intent intent = getIntent();
intent.getData().toString();
要回答你的全部问题:
但是在我的活动中,调用了onCreate(),但没有调用onActivityResult(),为什么
您可以直接从以下网址找到答案:
当活动启动时调用退出[…]
这不是你的情况<代码>onActivityResult仅在您(从代码)启动的活动上调用。在描述活动的场景中,从另一个应用程序(浏览器)调用活动
使用方法启动的活动结束后,将调用onActivityResult
那么,我如何获取导致我的活动的文件
在
onCreate()
中调用getIntent()
,以获取用于启动活动的Intent
。在那里,getData()
将返回指向该文件的Uri
。“但是在我的活动中,调用了onCreate(),但没有调用onActivityResult(),为什么?”--因为大概不应该调用onActivityResult()
。只有在调用startActivityForResult()
时才会调用该函数。你的问题中没有任何东西表明你打过这样的电话。请解释您认为应该调用onActivityResult()
的原因。我如何获取导致我的活动的文件?好的,我得到了,但由于调用来自浏览器(例如ES explorer),我如何获取该文件?您应该能够从onCreate
回调中获取该文件。只需调用:Intent-Intent=getIntent()代码>intent.getData().toString()代码>