从其他应用打开您的应用

时间:2014-11-06 04:30:34

标签: android

我创建了一个播放MP3的应用程序。现在我想从文件资源管理器等其他应用程序打开我的应用程序。 当用户点击任何mp3文件时,它必须在“完成操作使用”中显示我的应用程序,如下所示:

使用以下方式完成操作:

[我的应用]

[其他应用1]

[其他应用2]

...

当我的应用程序被选中时,我想让它播放mp3文件(它应该以某种方式获取它的路径?)。

我该怎么做?

Example here...

2 个答案:

答案 0 :(得分:1)

您只需添加intent filter

即可

添加:

<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/*"/>
    </intent-filter>

答案 1 :(得分:0)

您需要将应用与文件扩展名相关联。要这样做,请在意图过滤器中添加这两行,并且您可以继续

<data android:scheme="file" />
<data android:mimeType="*/*"/>
<data android:pathPattern=".*\\.pdf" />

你的清单看起来像这样

<activity name="com.your.activity">
<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:mimeType="*/*" />
    <data android:pathPattern=".*\\.txt" />
</intent-filter>

<data android:scheme="file" />   => this define that the file must be local, not from http or else
<data android:mimeType="*/*" />  => match any mime type
<data android:pathPattern=".*\\.txt" /> => this is where you specify what extension you want to match

更新:要打开文件,您需要在活动中的onCreate中添加以下内容:

Intent intent = getIntent();
Action action = intent.getAction();
if (action.equals("com.google.android.apps.drive.DRIVE_OPEN")) {
    // Handle the intent from google drive...
} else if (action.equals("android.intent.action.VIEW")) {
    // Handle the intent to view the file...
} else // And so on...

根据您的目的更改action.equals if。