【发布时间】:2011-04-13 10:12:08
【问题描述】:
我在启动活动以响应从浏览器窗口下载文件时遇到问题。
当我点击浏览器中的文件下载按钮时,它会被下载到 SD 卡,而不是启动我的 MainActivity(甚至提示我应该用它做什么)。
如果我随后使用文件资源管理器找到 SD 卡上的文件并选择它,那么我的 MainActivity 就会启动。
我是否误解了意图过滤器的工作原理?我已经在电脑上使用wireshark验证了下载文件的mime类型,以验证它是否符合预期。
[如果我删除了 PathPattern 并简单地设置了 mime 类型,那么当按下下载按钮时,系统会提示我说设备上没有任何东西可以处理这个文件,我还想继续下载吗? ]
任何帮助将不胜感激。
这是我的清单中的条目:
<activity android:name=".activity.main.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="application/xml-mydata"
android:pathPattern=".*\\.mydata" />
</intent-filter>
</activity>
【问题讨论】:
-
OK 随着 pathPattern 删除文件下载 OK,我之前关于它现在根本不起作用的评论(对 commonsware)是不正确的。一直在阅读更多关于 DownloadManager 的内容,我怀疑我的行为我看到的是正确的。即单击按钮从网站下载文件,downloadManger 下载文件并将其存储在 SD 卡上。我的应用程序仅在文件资源管理器中选择文件时才会收到意图。所以我现在对 BROWSABLE 类别给聚会带来了什么感到困惑。是否可以自动触发可下载文件的活动?
-
你有没有找到办法做到这一点?
标签: android browser intentfilter