【问题标题】:android: problem setting up intent filter to fire off activity when downloading file from web in browserandroid:在浏览器中从网络下载文件时设置意图过滤器以触发活动的问题
【发布时间】: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


【解决方案1】:

从概念上讲,您所拥有的似乎还不错,尽管我会转储 pathPatternHere is a sample project 展示了这些类型的 &lt;intent-filter&gt; 元素。

我会确保您的 MIME 类型具有有效的语法。如果允许破折号,我会忘记头顶。

【讨论】:

  • 破折号似乎被允许作为 mime 语法的一部分(有关示例,请参见此处iana.org/assignments/media-types/index.html)。已尝试不使用 pathPattern,然后在任何地方都无法识别类型。
  • @malcooke:我只能告诉你尝试我的示例应用程序。如果它有效——并且在我上次尝试时有效——那么你需要开始确定你与我所拥有的不同之处。例如,您没有通过 Wireshark 捕获的 MIME 类型可能有一些微妙的错误。
  • 好的,我确实设置了您的示例应用程序,它的工作方式似乎与我的应用程序的工作方式相同。即下载文件时它没有自动关闭pdf查看器。我看到的行为是文件被下载,然后当从通知中选择文件名时,pdf阅读器被触发。只是为了确保它不是我想要的 htc sense 功能,我在模拟器上重复了试验,结果相同。也许这是正常的工作方式?
  • @malcookie:对不起,我一定是记错了。
猜你喜欢
  • 1970-01-01
  • 2015-03-31
  • 1970-01-01
  • 1970-01-01
  • 2013-02-24
  • 1970-01-01
  • 1970-01-01
  • 2012-06-14
  • 1970-01-01
相关资源
最近更新 更多