如何制作用于流式播放MP3文件的intent-filter?

时间:2011-07-26 01:04:09

标签: android android-manifest android-intent

在Android上,如果您在浏览器中键入MP3文件的URL(或单击指向该文件的链接),您将获得“使用完整操作”弹出窗口,其中列出了可以播放文件的某些应用程序(Music,StreamFurious) ,Streaming Media Player,Winamp,XiiaLive Lite,仅举几例)。如何让我的应用程序显示在该列表中?

我很确定我必须添加到AndroidManifest.xml中的intent-filter,但我不知道需要在其中添加什么操作,类别或数据。谁知道我要做什么?另外,有什么方法可以追踪调用系统的意图吗?这可能会让你更容易弄清楚将来如何做其他事情。

根据我在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并意识到应用程序没有显示在“使用完整操作”列表中。

2 个答案:

答案 0 :(得分:1)

您可能想要添加此过滤器:

<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广播并将文件出售给可能对文件类型感兴趣的可能应用程序。因此,我们需要确定我们的应用程序将/可能响应的文件。这是通过广播接收器。但你可能已经知道了。我希望这有帮助......因为我迟到了。

我再次编辑这个...你需要在你的应用程序标签中。 ^^

答案 1 :(得分:1)

不需要接收器。这有效。当您单击链接时,它会尝试“查看”链接的内容,因此intent-filter需要视图操作和可浏览类别。下面列出了正确的数据设置:

<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>