Как сделать фильтр намерений для потоковой передачи файла MP3? - PullRequest
5 голосов
/ 26 июля 2011

В Android, если вы вводите URL-адрес файла MP3 в браузере (или нажимаете ссылку на файл), вы получаете всплывающее окно «Выполнить действие» с некоторыми приложениями в списке, которые могут воспроизводить файл (Music, StreamFurious , Потоковый медиа-плеер, Winamp, XiiaLive Lite, чтобы назвать несколько). Как мне сделать так, чтобы мое приложение отображалось в этом списке?

Я почти уверен, что есть фильтр намерений, который я должен добавить в AndroidManifest.xml, но я не знаю, какое действие, категория или данные должны быть в нем. Кто-нибудь знает, что я должен делать? Кроме того, есть ли способ отследить намерения, которые вызвали в системе? Это могло бы облегчить понимание того, как делать в будущем подобные вещи.

Исходя из того, что я увидел на code.google.com/p/andless/source/browse/trunk/AndroidManifest.xml?spec=svn86&r=86# Я попробовал это:

<activity android:name=".Main"
          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" />
        <data android:mimeType="audio/mp3" android:scheme="file" />
    </intent-filter>
</activity>

но этого не произошло. Затем я скачал andLess с маркета и понял, что приложение также не отображается в списке «Complete action using».

Ответы [ 2 ]

1 голос
/ 19 декабря 2011

Приемник не нужен. Это работает. Когда вы щелкаете ссылку, она пытается «просмотреть» содержимое ссылки, поэтому для фильтра намерений требуется действие просмотра и категория для просмотра. И правильные настройки данных перечислены ниже:

<activity android:name=".Main"
          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:scheme="http" android:pathPattern=".*mp3" android:mimeType="audio/*" />
    </intent-filter>
</activity>
1 голос
/ 26 июля 2011

Возможно, вы захотите добавить этот фильтр:

<action android:name="android.intent.action.MUSIC_PLAYER"/>

Кстати, не забывайте необходимые разрешения ... это важно. ^^

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

<receiver android:name="MyPhoneReceiver">
    <intent-filter>
    <action android:name="android.intent.action.MUSIC_PLAYER"></action>
    </intent-filter>
</receiver>

что в основном происходит здесь, когда файл запускается / щелкается, возможно, из файлового браузера, android транслирует и продает файл возможным приложениям, которые могут быть заинтересованы в виде файла. поэтому нам необходимо установить, на какие файлы будут отвечать наши приложения. и это через приемники вещания. но вы, наверное, уже знаете это. я надеюсь, что это помогло ... извините за задержку, я был afk.

Я снова редактирую это ... вам нужно это внутри тега приложения. ^^

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...