RT.通过在androidmanifest.xml文件中,将歌曲列表activity加上MAIN及LAUNCHER属性,但在桌面上根本看到不启动的菜单图标。请问该如何修改:进入音乐播放器默认的歌曲列表而不是现在的艺术家列表?

解决方案 »

  1.   

    原始的用MusicBrowserActivity来启动音乐    <application android:icon="@drawable/app_music"
            android:label="@string/musicbrowserlabel"
            android:taskAffinity="android.task.music"
            android:allowTaskReparenting="true">
            <meta-data
                android:name="android.app.default_searchable"
                android:value="com.android.music.QueryBrowserActivity"
            />
            <activity android:name="com.android.music.MusicBrowserActivity"
                android:theme="@android:style/Theme.Holo.NoActionBar"
                android:exported="true"
            >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <action android:name="android.intent.action.MUSIC_PLAYER" />
                    <category android:name="android.intent.category.DEFAULT" />
                    <category android:name="android.intent.category.LAUNCHER" />
                    <category android:name="android.intent.category.APP_MUSIC" />
                </intent-filter>
            </activity>
    .........................
    ..............为了达到进入音乐播放器默认的歌曲列表而不是现在的艺术家列表,
    将下面的TrackBrowserActivity,这就是歌曲列表activity,但重新new后都没有在桌面上看到应用图标(<category android:name="android.intent.category.LAUNCHER" />这个属性就是在桌面生成图标)
            <activity android:name="com.android.music.TrackBrowserActivity" android:exported="false" 
                android:label="@string/musicbrowserlabel"
                android:icon="@drawable/app_music"
                android:process="com.android.music"
                android:theme="@android:style/Theme.Holo"
                android:configChanges="orientation|screenSize" >
                <intent-filter>
    <action android:name="android.intent.action.MAIN" />
            <action android:name="android.intent.action.MUSIC_PLAYER" />
                    <action android:name="android.intent.action.EDIT" />
                    <action android:name="android.intent.action.PICK" />
                    <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.LAUNCHER" />
    <category android:name="android.intent.category.APP_MUSIC" />
                    <data android:mimeType="vnd.android.cursor.dir/track"/>
                </intent-filter>
            </activity>
    请大侠指点下
      

  2.   

    你要改这个类 MusicBrowserActivity.java
     public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
            int activeTab = MusicUtils.getIntPref(this, "activetab", R.id.artisttab);//R.id.artisttab改成 R.id.playlisttab
            if (activeTab != R.id.artisttab
                    && activeTab != R.id.albumtab
                    && activeTab != R.id.songtab
                    && activeTab != R.id.playlisttab) {
                activeTab = R.id.artisttab;  //改成 R.id.playlisttab
            }
            MusicUtils.activateTab(this, activeTab);
        }
      

  3.   

    有像楼上那样改过: int activeTab = MusicUtils.getIntPref(this, "activetab", R.id.artisttab);//R.id.artisttab改成 R.id.songtab
    (歌曲列表),单单这样改是不行的。
      

  4.   

    请问通过:int activeTab = MusicUtils.getIntPref(this, "activetab", R.id.artisttab);
    这种方式,它的初始化写值操作在哪?
    搜索相应函数setIntPref在函数processTabClick有调用,在这方法是有操作Tab时才调用。要是知道"activetab"在哪初始化,就直接初始化成 R.id.songtab也可以。    static void processTabClick(Activity a, View v, int current) {
           ......
            if (id != R.id.nowplayingtab) {
                setIntPref(a, "activetab", id);
                ll.setCurrentTab((Integer) v.getTag());
            }
        }