我创建了一个播放MP3的应用程序。现在我想从文件资源管理器等其他应用程序打开我的应用程序。 当用户点击任何mp3文件时,它必须在“完成操作使用”中显示我的应用程序,如下所示:
使用以下方式完成操作:
[我的应用]
[其他应用1]
[其他应用2]
... 的
当我的应用程序被选中时,我想让它播放mp3文件(它应该以某种方式获取它的路径?)。
我该怎么做?
答案 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。