初学者求教android高手:
我使用的是android 2.1系统, 在系统启动后主界面上显示:Mms, Google search, Contacts, Browser这几个应用程序快捷方式图标,但我现在想启动后将这几个应用程序换成其它的几个如(Gallery,Music,Settings),请问高手,我需要如何修改程序让系统一启动就将我指定的应用程序快捷方式显示到主界面上?

解决方案 »

  1.   

    修改launher的代码中的一个preference,里面有定义显示在桌面的快捷方式。
      

  2.   

    1.adb shell 卸载,然后安装你需要的应用程序
    2.有的模块1的方法不行,需要重新编译生成.apk ,然后把.apk加到img文件?里面。
      

  3.   

    在launher代码中都没有找到preference和provider,麻烦说得详细点?是要修改.java原代码还是修改.xml文件呢?对照图标看了也没看出来....
      

  4.   


    LauncherProvider.java 这个文件,我做过,不知道别乱说
      

  5.   


    谢谢你解答!
    我在Launcher里确实找到了LauncherProvider.java这个文件, 找到了如下这个函数,但还是不知怎么改?不知xml file 在哪里/**
             * Loads the default set of favorite packages from an xml file.
             *
             * @param db The database to write the values into
             */
            private int loadFavorites(SQLiteDatabase db) {
                Intent intent = new Intent(Intent.ACTION_MAIN, null);
                intent.addCategory(Intent.CATEGORY_LAUNCHER);
                ContentValues values = new ContentValues();            PackageManager packageManager = mContext.getPackageManager();
                int i = 0;
                try {
                    XmlResourceParser parser = mContext.getResources().getXml(R.xml.default_workspace);
                    AttributeSet attrs = Xml.asAttributeSet(parser);
                    XmlUtils.beginDocument(parser, TAG_FAVORITES);                final int depth = parser.getDepth();                int type;
                    while (((type = parser.next()) != XmlPullParser.END_TAG ||
                            parser.getDepth() > depth) && type != XmlPullParser.END_DOCUMENT) {                    if (type != XmlPullParser.START_TAG) {
                            continue;
                        }                    boolean added = false;
                        final String name = parser.getName();                    TypedArray a = mContext.obtainStyledAttributes(attrs, R.styleable.Favorite);                    values.clear();                    
                        values.put(LauncherSettings.Favorites.CONTAINER,
                                LauncherSettings.Favorites.CONTAINER_DESKTOP);
                        values.put(LauncherSettings.Favorites.SCREEN,
                                a.getString(R.styleable.Favorite_screen));
                        values.put(LauncherSettings.Favorites.CELLX,
                                a.getString(R.styleable.Favorite_x));
                        values.put(LauncherSettings.Favorites.CELLY,
                                a.getString(R.styleable.Favorite_y));                    if (TAG_FAVORITE.equals(name)) {
                            added = addAppShortcut(db, values, a, packageManager, intent);
                        } else if (TAG_SEARCH.equals(name)) {
                            added = addSearchWidget(db, values);
                        } else if (TAG_CLOCK.equals(name)) {
                            added = addClockWidget(db, values);
                        } else if (TAG_SHORTCUT.equals(name)) {
                            added = addShortcut(db, values, a);
                        }                    if (added) i++;                    a.recycle();
                    }
                } catch (XmlPullParserException e) {
                    Log.w(LOG_TAG, "Got exception parsing favorites.", e);
                } catch (IOException e) {
                    Log.w(LOG_TAG, "Got exception parsing favorites.", e);
                }            return i;
            }
      

  6.   

    学习ing,下了一个base-HEAD源代码,结果不包括楼主说的那个文件。
      

  7.   

    我知道怎样去掉界面的快捷方式图标,在res/xml/下有个default_workspace.xml, 如下:
    <favorites xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher">    <search
            launcher:screen="1"
            launcher:x="0"
            launcher:y="0" />    <favorite
            launcher:packageName="com.android.contacts"
            launcher:className="com.android.contacts.DialtactsActivity"
            launcher:screen="1"
            launcher:x="0"
            launcher:y="3" />    <favorite
            launcher:packageName="com.android.contacts"
            launcher:className="com.android.contacts.DialtactsContactsEntryActivity"
            launcher:screen="1"
            launcher:x="1"
            launcher:y="3" />    <favorite
            launcher:packageName="com.android.browser"
            launcher:className="com.android.browser.BrowserActivity"
            launcher:screen="1"
            launcher:x="2"
            launcher:y="3" />    <favorite
            launcher:packageName="com.google.android.apps.maps"
            launcher:className="com.google.android.maps.MapsActivity"
            launcher:screen="1"
            launcher:x="3"
            launcher:y="3" />    <favorite
            launcher:packageName="com.android.mms"
            launcher:className="com.android.mms.ui.ConversationList"
            launcher:screen="1"
            launcher:x="0"
            launcher:y="2" />    <favorite
            launcher:packageName="com.android.vending"
            launcher:className="com.android.vending.AssetBrowserActivity"
            launcher:screen="1"
            launcher:x="3"
            launcher:y="2" /></favorites>去掉就可以了,但是当我想添加自已的应用程序时launcher:className="  "这个里面不知如何添加了,哪位大侠指点一下?
      

  8.   

    在线等.....我实在是对android这玩意不了解. 高手快快出现!
      

  9.   

    楼主找到的这个文件就是了啊,改成你要的APK不就好了吗?
      

  10.   

    我试过,添加我自已的APK, 但是界面上没出现我的应用程序图标.
    我一直怀疑是launcher:className=" " 里面的内容添加不正确.
    还是未解决!
      

  11.   

    晕 默认有一个launcher.db数据库的(它里面存入了放在桌面上图标相应的信息),你修改那个xml文件是没效果的。所以吗,我个人认为是要去修改数据库。
      

  12.   

    这么早的问题怎么又拿出来,我都改过N次了,就是那个xml文件。
      

  13.   

    楼主问题解决了吗?
    我照着各位大虾的说法修改了default_workspace.xml,并将新的Launcher.apk push到Android2.1的模拟器上(/system/app/...),可HomeScreen还是一点变化都没有啊!  是不是还要修改launcher的数据库? 怎么修改?
      

  14.   

    问题解决了,应当修改launcher里面的xml文件
      

  15.   


    要吧launcher的数据文件都删除掉,再重新启动。。 数据文件在data\data 那个目录下面
      

  16.   


    没错,但有人遇到这种现象没:search一旦改变位置,他就不显示了,这是怎么回事?
      

  17.   

    对,在android 2.3 中,时钟也不显示。
      

  18.   

    修改default_workspace 就可以了吗?
      

  19.   

    default_workspace.xml
    这个文件在哪?我米看到哇,请求高手指点!