2012-01-06 2 views
4

У меня есть приложение для Android, которое прослушивает намерения браузера, чтобы поймать их всякий раз, когда пользователь нажимает на определенный тип URI. В частности, я хочу, чтобы мое приложение открывалось, когда пользователь нажал на гиперссылку, указывающую на торрент-файл (например, http://somewhere/file.torrent).Как поймать/прослушивать загрузку веб-браузера Android.

Ниже мои намерения фильтров из моего приложения AndroidManifest.xml:

 <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/x-bittorrent" 
       android:scheme="http" /> 
     </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:host="*" 
       android:pathPattern=".*\\.torrent" 
       android:scheme="http" /> 
     </intent-filter> 

Это хорошо работает до тех пор, как точка гиперссылки местоположение файла. НО - иногда URL-адреса напрямую указывают на файл и интерпретируются сервером для возврата файла для загрузки на основе какого-то идентификатора, подобного этой ссылке http://www.mininova.org/get/13202308, которая возвращает файл обратно. В этом случае мои фильтры намерения не работают, и браузер Android загружает файл вместо того, чтобы открывать мое приложение и передавать намерение с URI файла.

Кто-нибудь знает, как получить URI файла?

Благодаря

ответ

1

Вполне возможно, что в тех случаях, ответ HTTP имеет заголовок Content-disposition: как attachment;filename=file.torrent

Если это так, возможно, что браузер даже не бросать намерения.

Смежные вопросы