ssuukk
ssuukk

Reputation: 8410

Intent filter to open playlist from browser in my application

I thought I my app has all the possible filters, but still when I click:

http://www.swissgroove.ch/listen.php

in either Chrome or FireFox for Android, they start downloading the file in from the link (SwissGroove.m3u) instead of poping up window asking to choose which app should be used to open it. So the CORRECTED question is - how would you define an intentfilter in manifest that would allow opening any link CONTAINING either m3u or pls (but not looking like it, like in case of listen.php) in external app instead of downloading it?

Note: currently I have this:

        <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="rtmp" />
            <data android:scheme="rtmpe" />
            <data android:scheme="rtmps" />
            <data android:scheme="rtp" />
            <data android:scheme="rtsp" />
            <data android:scheme="mms" />
            <data android:scheme="mmsh" />
            <data android:scheme="icyx" />
            <data android:scheme="httplive" />
            <data android:scheme="udp" />
            <data android:scheme="vlc" />
        </intent-filter>
        <!-- This filter captures protocols with type info -->
        <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="audio/*" />
            <data android:scheme="rtmp" />
            <data android:scheme="rtmpe" />
            <data android:scheme="rtmps" />
            <data android:scheme="rtp" />
            <data android:scheme="rtsp" />
            <data android:scheme="mms" />
            <data android:scheme="mmsh" />
            <data android:scheme="icyx" />
            <data android:scheme="httplive" />
            <data android:scheme="udp" />
        </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="file" />
            <data android:scheme="ftp" />
            <data android:scheme="content" />
            <data android:scheme="http" />
            <data android:scheme="https" />
            <data android:mimeType="audio/*" />
            <data android:mimeType="*/rmvb" />
            <data android:mimeType="*/avi" />
            <data android:mimeType="*/mkv" />
            <data android:mimeType="application/3gpp*" />
            <data android:mimeType="application/mp4" />
            <data android:mimeType="application/mpeg*" />
            <data android:mimeType="application/ogg" />
            <data android:mimeType="application/sdp" />
            <data android:mimeType="application/vnd.3gp*" />
            <data android:mimeType="application/vnd.apple.mpegurl" />
            <data android:mimeType="application/vnd.rn-realmedia*" />
            <data android:mimeType="application/x-extension-mp4" />
            <data android:mimeType="application/x-flac" />
            <data android:mimeType="application/x-matroska" />
            <data android:mimeType="application/x-mpegURL" />
            <data android:mimeType="application/x-ogg" />
            <data android:mimeType="application/x-quicktimeplayer" />
            <data android:mimeType="application/xspf+xml" />
            <data android:mimeType="application/x-winamp-playlist" />
            <data android:mimeType="misc/ultravox" />
        </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="file" />
            <data android:scheme="ftp" />
            <data android:scheme="content" />
            <data android:scheme="http" />
            <data android:scheme="https" />
            <data android:host="*" />
            <data android:pathPattern="/.*\\.3ga" />
            <data android:pathPattern="/.*\\.a52" />
            <data android:pathPattern="/.*\\.aac" />
            <data android:pathPattern="/.*\\.ac3" />
            <data android:pathPattern="/.*\\.adt" />
            <data android:pathPattern="/.*\\.adts" />
            <data android:pathPattern="/.*\\.aif" />
            <data android:pathPattern="/.*\\.aifc" />
            <data android:pathPattern="/.*\\.aiff" />
            <data android:pathPattern="/.*\\.amr" />
            <data android:pathPattern="/.*\\.aob" />
            <data android:pathPattern="/.*\\.ape" />
            <data android:pathPattern="/.*\\.awb" />
            <data android:pathPattern="/.*\\.caf" />
            <data android:pathPattern="/.*\\.dts" />
            <data android:pathPattern="/.*\\.flac" />
            <data android:pathPattern="/.*\\.it" />
            <data android:pathPattern="/.*\\.m4a" />
            <data android:pathPattern="/.*\\.m4b" />
            <data android:pathPattern="/.*\\.m4p" />
            <data android:pathPattern="/.*\\.mid" />
            <data android:pathPattern="/.*\\.mka" />
            <data android:pathPattern="/.*\\.mlp" />
            <data android:pathPattern="/.*\\.mod" />
            <data android:pathPattern="/.*\\.mpa" />
            <data android:pathPattern="/.*\\.mp1" />
            <data android:pathPattern="/.*\\.mp2" />
            <data android:pathPattern="/.*\\.mp3" />
            <data android:pathPattern="/.*\\.mpc" />
            <data android:pathPattern="/.*\\.mpga" />
            <data android:pathPattern="/.*\\.oga" />
            <data android:pathPattern="/.*\\.ogg" />
            <data android:pathPattern="/.*\\.oma" />
            <data android:pathPattern="/.*\\.opus" />
            <data android:pathPattern="/.*\\.ra" />
            <data android:pathPattern="/.*\\.ram" />
            <data android:pathPattern="/.*\\.rmi" />
            <data android:pathPattern="/.*\\.s3m" />
            <data android:pathPattern="/.*\\.spx" />
            <data android:pathPattern="/.*\\.tta" />
            <data android:pathPattern="/.*\\.voc" />
            <data android:pathPattern="/.*\\.vqf" />
            <data android:pathPattern="/.*\\.w64" />
            <data android:pathPattern="/.*\\.wav" />
            <data android:pathPattern="/.*\\.wma" />
            <data android:pathPattern="/.*\\.wv" />
            <data android:pathPattern="/.*\\.xa" />
            <data android:pathPattern="/.*\\.xm" />
            <data android:pathPattern="/.*\\.3GA" />
            <data android:pathPattern="/.*\\.A52" />
            <data android:pathPattern="/.*\\.AAC" />
            <data android:pathPattern="/.*\\.AC3" />
            <data android:pathPattern="/.*\\.ADT" />
            <data android:pathPattern="/.*\\.ADTS" />
            <data android:pathPattern="/.*\\.AIF" />
            <data android:pathPattern="/.*\\.AIFC" />
            <data android:pathPattern="/.*\\.AIFF" />
            <data android:pathPattern="/.*\\.AMR" />
            <data android:pathPattern="/.*\\.AOB" />
            <data android:pathPattern="/.*\\.APE" />
            <data android:pathPattern="/.*\\.AWB" />
            <data android:pathPattern="/.*\\.CAF" />
            <data android:pathPattern="/.*\\.DTS" />
            <data android:pathPattern="/.*\\.FLAC" />
            <data android:pathPattern="/.*\\.IT" />
            <data android:pathPattern="/.*\\.M4A" />
            <data android:pathPattern="/.*\\.M4B" />
            <data android:pathPattern="/.*\\.M4P" />
            <data android:pathPattern="/.*\\.MID" />
            <data android:pathPattern="/.*\\.MKA" />
            <data android:pathPattern="/.*\\.MLP" />
            <data android:pathPattern="/.*\\.MOD" />
            <data android:pathPattern="/.*\\.MPA" />
            <data android:pathPattern="/.*\\.MP1" />
            <data android:pathPattern="/.*\\.MP2" />
            <data android:pathPattern="/.*\\.MP3" />
            <data android:pathPattern="/.*\\.MPC" />
            <data android:pathPattern="/.*\\.MPGA" />
            <data android:pathPattern="/.*\\.OGA" />
            <data android:pathPattern="/.*\\.OGG" />
            <data android:pathPattern="/.*\\.OMA" />
            <data android:pathPattern="/.*\\.OPUS" />
            <data android:pathPattern="/.*\\.RA" />
            <data android:pathPattern="/.*\\.RAM" />
            <data android:pathPattern="/.*\\.RMI" />
            <data android:pathPattern="/.*\\.S3M" />
            <data android:pathPattern="/.*\\.SPX" />
            <data android:pathPattern="/.*\\.TTA" />
            <data android:pathPattern="/.*\\.VOC" />
            <data android:pathPattern="/.*\\.VQF" />
            <data android:pathPattern="/.*\\.W64" />
            <data android:pathPattern="/.*\\.WAV" />
            <data android:pathPattern="/.*\\.WMA" />
            <data android:pathPattern="/.*\\.WV" />
            <data android:pathPattern="/.*\\.XA" />
            <data android:pathPattern="/.*\\.XM" />
        </intent-filter>

Upvotes: 1

Views: 663

Answers (1)

Mattia Maestrini
Mattia Maestrini

Reputation: 32780

To intercept the exact url http://www.swissgroove.ch/listen.php you can use this 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="www.swissgroove.ch"
        android:pathPrefix="/listen.php"
        android:scheme="http"/>
</intent-filter>

If you want to intercept every url of the domain http://www.swissgroove.ch/ you can use this 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="www.swissgroove.ch"
        android:pathPrefix="/"
        android:scheme="http"/>
</intent-filter>

Upvotes: 1

Related Questions