如何为filebrowser app" myfiles"?注册备用mp3-viewer?

时间:2012-01-02 13:39:08

标签: android android-manifest

我正在创建一个mp3tag编辑器,并希望它通过android-buildin-filebrowser“myfiles”(com.sec.android.app.myfiles / com.sec.android.app.myfiles.MainActivity)开始。< / p>

当我选择一个mp3文件时,我得到一个活动选择器,它为我提供了两个程序来执行该文件。 不幸的是,我自己的计划不属于所提供的选择。

但是,如果我使用外部android-filebrowser OI File Manager,它会为我提供一个选择器 其中包括我自己的应用程序。

我的问题:如何在清单中注册我的活动,以便“myfiles”可以启动它?

我的应用注册如下:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="media.mp3"
        android:versionCode="1"
        android:versionName="1.0" >

        <uses-sdk android:minSdkVersion="7" />

        <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name" >
            <activity
                android:label="@string/app_name"
                android:name=".Mp3TagEditorActivity" >
                <intent-filter >
                    <action android:name="android.intent.action.MAIN" />

                    <category android:name="android.intent.category.LAUNCHER" />
                    <category android:name="android.intent.category.EDIT" />
                    <category android:name="android.intent.category.VIEW" />
                    <data android:mimeType="audio/mpeg"  />

                </intent-filter>
            </activity>
        </application>
    </manifest>

2 个答案:

答案 0 :(得分:4)

  

我正在创建一个mp3tag编辑器,并希望它通过android-buildin-filebrowser“myfiles”开始。

Android OS中没有“android-buildin-filebrowser'myfiles'”。您可能会想到某个特定设备上附带的文件浏览器。

  

我的问题:如何在清单中注册我的活动,以便“myfiles”可以启动它?

要明确回答,您必须联系“myfiles”的作者。

  

我的应用注册如下:

您的<intent-filter>相当错误。

首先,EDITVIEW是行动,而不是类别。

其次,<intent-filter>匹配的唯一方法是,如果包含LAUNCHER类别,则EDITVIEW操作的可能性非常小。< / p>

如果您希望此活动同时位于主屏幕的启动器并且响应VIEWEDIT操作,则需要以下内容:

        <activity
            android:label="@string/app_name"
            android:name=".Mp3TagEditorActivity" >
            <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.EDIT" />
                <action android:name="android.intent.action.VIEW" />
                <data android:mimeType="audio/mpeg"  />
            </intent-filter>
        </activity>

两个单独的<intent-filter>元素是逻辑OR - 与第一个匹配的任何Intent第二个匹配此活动。

答案 1 :(得分:0)

实际上,它可能就像添加:

一样简单
<action android:name="android.intent.action.MUSIC_PLAYER" />

所以你的Manifest应该是这样的:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="media.mp3"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".Mp3TagEditorActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.intent.action.MUSIC_PLAYER" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.EDIT" />
                <category android:name="android.intent.category.VIEW" />
                <data android:mimeType="audio/mpeg"  />
            </intent-filter>
        </activity>
    </application>
</manifest>

尝试一下,您可能会出现在我的myfiles应用中。希望能解决你的问题。