Android: проблема с настройкой фильтра намерений для отключения активности при загрузке файла из Интернета в браузере - PullRequest
2 голосов
/ 13 апреля 2011

У меня проблема с получением действия, которое будет инициировано в ответ на загрузку файла из окна браузера.

Когда я нажимаю кнопку загрузки файла в браузере, он загружается на SD-карту вместо того, чтобы запускать мою MainActivity (или даже подсказывать, что мне с ней делать).

Если я затем найду файл на SD-карте с помощью проводника и выберу его, то будет запущена моя основная операция.

Я неправильно понял, как работают фильтры намерений? Я проверил тип mime для загружаемого файла, используя wireshark на компьютере, чтобы убедиться, что он соответствует ожиданиям.

[Если я удаляю 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>

1 Ответ

0 голосов
/ 13 апреля 2011

Концептуально то, что у вас кажется нормальным, хотя я бы выбросил pathPattern. Вот пример проекта , демонстрирующий эти виды <intent-filter> элементов.

Я хотел бы убедиться, что ваш тип MIME имеет правильный синтаксис.Я забыл с макушки головы, если разрешены тире.

...