Android:使用ACTION\u VIEW intent筛选器截获HTTP表单POST响应
我已经设置了一个意图过滤器,当用户在内置浏览器中下载具有特定MIME类型的文件时,会触发该过滤器,然后打开我的应用程序来处理它。然后,我在Intent的getData()字段中接收URI,该字段可用于获取数据。这似乎很奇怪,因为要获取MIME类型,浏览器显然至少已经启动了HTTP请求,但对于简单的HTTP get来说,这没什么大不了的——在这种情况下,我只是重新获取它,一切都很好 然而,如果所需的内容是作为一个表单帖子的结果出现的,我就不走运了——而且我似乎不是唯一的一个,但我找不到任何答案。这里有几个人问了类似的问题却没有回答,还有一张谷歌罚单似乎表明这在旧版本中是一个硬限制,但在Android 4.0/冰淇淋三明治(我正在使用)中得到了修复: 以下是我正在使用的意图过滤器:Android:使用ACTION\u VIEW intent筛选器截获HTTP表单POST响应,android,android-intent,http-post,android-4.0-ice-cream-sandwich,intentfilter,Android,Android Intent,Http Post,Android 4.0 Ice Cream Sandwich,Intentfilter,我已经设置了一个意图过滤器,当用户在内置浏览器中下载具有特定MIME类型的文件时,会触发该过滤器,然后打开我的应用程序来处理它。然后,我在Intent的getData()字段中接收URI,该字段可用于获取数据。这似乎很奇怪,因为要获取MIME类型,浏览器显然至少已经启动了HTTP请求,但对于简单的HTTP get来说,这没什么大不了的——在这种情况下,我只是重新获取它,一切都很好 然而,如果所需的内容是作为一个表单帖子的结果出现的,我就不走运了——而且我似乎不是唯一的一个,但我找不到任何答案。这
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT"/>
<action android:name="android.intent.action.RUN"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.WEB_SEARCH" />
<category android:name="android.intent.category.ALTERNATIVE"/>
<data android:host="*"/>
<data android:mimeType="application/my-content-type"/>
<data android:scheme="file"/>
<data android:scheme="http"/>
<data android:scheme="https"/>
</intent-filter>
那么,我是遗漏了什么,还是这只是框架的一个限制
谢谢
java.io.FileNotFoundException: No content provider: http://[the form URL]
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:603)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:535)
at android.content.ContentResolver.openInputStream(ContentResolver.java:370)
at my.package.MyActivity.onStart(MyActivity.java:127)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1133)
at android.app.Activity.performStart(Activity.java:4475)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1928)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
at android.app.ActivityThread.access$600(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4340)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)