如何让您的活动页面从另一个应用程序打开?

时间:2014-06-11 08:08:13

标签: java android

我是Android开发的新手,我想建立一个音乐播放器,但我面前的问题是如何让我的应用程序从画廊打开。 例如, 如果我们想打开任何音乐文件然后我们选择它,Android手机会询问我们想要使用哪个播放器。

所以如何在该选项中添加我的应用程序。

请帮忙。

3 个答案:

答案 0 :(得分:3)

如果您希望自己的应用位于打开音频文件的列表中,则需要告诉系统您的应用可以打开这些文件。您可以通过在activity中的AndroidManifest.xml标记中添加以下内容来实现此目的:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="content"/>
    <data android:scheme="file"/>
    <data android:mimeType="audio/*"/>
    <data android:mimeType="application/ogg"/>
    <data android:mimeType="application/x-ogg"/>
    <data android:mimeType="application/itunes"/>
</intent-filter>

Intent filters是Android开发中核心原则的一部分。在开始之前,您应该尝试了解这些基本主题。

答案 1 :(得分:0)

它可以帮助你

Intent intent = new Intent();  
intent.setAction(android.content.Intent.ACTION_VIEW);  
File file = new File(YOUR_SONG_URI);  
intent.setDataAndType(Uri.fromFile(file), "audio/*");  
startActivity(intent);

答案 2 :(得分:0)

实际上你可以打开活动而不是自己的应用只需在主要节目中添加动作意图过滤器,就像这样

<activity class=".foo" android:label="@string/title_notes_list">
         <intent-filter>
             <action android:name="com.me.love" />
             <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
</activity>

其他应用代码:

Intent intent = new Intent("com.me.love");
startActivity(intent);

但是如果你想告诉android系统你的活动可以处理一些动作,比如分享或发送数据,你只需要添加&#34;发送&#34;对你在mainfest活动的行动如下:

<activity class=".boo" android:label="@string/title_notes_list">
         <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
         </intent-filter>
</activity>

所以现在当用户点击分享按钮时,android系统会检查所有有动作字符串的活动&#34; android.intent.action.SEND&#34;然后向用户列出具有send操作的活动列表,如果您为活动添加了与boo活动剂量相同的操作,那么它将是列表中的一个选择。