Android13-修改主界面apk摆放位置(Launcher3)

问题:

 客户定制主屏apk摆放位置。android的一般在launcher3里面修改。

代码位置:

alps/vendor/mediatek/proprietary/packages/apps/Launcher3/res/xml/default_workspace_5x5.xml

具体代码:

--- a/alps/vendor/mediatek/proprietary/packages/apps/Launcher3/res/xml/default_workspace_5x5.xml
+++ b/alps/vendor/mediatek/proprietary/packages/apps/Launcher3/res/xml/default_workspace_5x5.xml
@@ -70,8 +70,9 @@
         launcher:screen="0"
         launcher:x="0"
         launcher:y="4"
-        launcher:packageName="com.android.documentsui"
-        launcher:className="com.android.documentsui.LauncherActivity" />
+        launcher:packageName="com.google.android.apps.youtube.music"
+        launcher:className="com.google.android.apps.youtube.music.activities.MusicActivity" />
+

     <resolve
         launcher:screen="0"
@@ -86,8 +87,9 @@
         launcher:screen="0"
         launcher:x="2"
         launcher:y="4"
-        launcher:packageName="com.android.soundrecorder"
-        launcher:className="com.android.soundrecorder.SoundRecorder" />
+        launcher:packageName="com.android.fmradio"
+        launcher:className="com.android.fmradio.FmMainActivity" />
+

     <favorite
         launcher:screen="0"

代码分析:

 确认用的是那个launcher,用手拖动apk看有几行几列就是那个。

说明
介绍一下机子开机后,默认加载到桌面的程序快捷方式、小插件、和文件夹的修改方法。在4.0之后launcher 还加入了快捷方式导航条-hotSeat,也介绍下如何把程序默认加载在hotseat上。

1. Workspace
用于显示桌面图标、快捷方式、widget和文件夹等

配置显示布局
value/config.xml

 <!-- Folder max bounds and max number of items. Note: folder_max_count_x * folder_max_count_y
      >= folder_max_num_items. When these are set to -1, they are automatically determined. -->
 <integer name="folder_max_count_x">4</integer> 
 <integer name="folder_max_count_y">4</integer>   
 <integer name="folder_max_num_items">16</integer>/* 桌面文件夹支持的最大内容元素的个数*/

 <integer name="cell_count_x">4</integer> /*桌面可以摆放图标的空间,x轴4格*/
 <integer name="cell_count_y">4</integer>/*桌面可以摆放图标的空间,y轴4格*/
1
2
3
4
5
6
7
8
配置桌面图标、widget、快捷方式,超链接和文件夹
xml/default_workspace.xml
用于配置默认的桌面应用的图标、widget、快捷方式,超链接和文件夹。

下面列出default_workspace支持的标签和属性:

标签:

widget: 桌面控件
favorite: 应用程序快捷方式。
shortcut: 链接,如网址,本地磁盘路径等。
search: 搜索框。
clock: 桌面上的钟表Widget
folder: 桌面文件夹
属性:

launcher:title:图标下面的文字,目前只支持引用,不能直接书写字符串;
launcher:icon:图标引用;
launcher:uri:链接地址,链接网址用的,使用shortcut标签就可以定义一个超链接,打开某个网址,文件等。
launcher:packageName:应用程序的包名;
launcher:className:应用程序的启动类名;
launcher:screen:图标所在的屏幕编号;
launcher❌图标在横向排列上的序号;
launcher:y:图标在纵向排列上的序号;
快捷方式说明:
<favorite                                  //程序快捷键属性标签

    launcher:packageName="com.android.browser"                  //该应用的包名
    launcher:className="com.android.browser.BrowserActivity"     //该应用的类,点击图标时,需要启动的类
    launcher:screen="1"  //第1屏,0-4屏共5屏
    launcher:x="0"       //图标X位置,左上角第一个为0,向右递增,共 cell_count_x 个
    launcher:y="0"       //图标Y位置,左上角第一个为0,向下递增,共 cell_count_y个
/>
1
2
3
4
5
6
7
8
桌面Widget的标签:
<appwidget                                  //插件
   launcher:className="de.dnsproject.clock_widget_main.Clock1AppWidgetProvider"  //该应用的类
   launcher:packageName="de.dnsproject.clock_widget_main" //该应用的包名
   launcher:screen="1"//第1屏,0-4屏共5屏
   launcher:x="2"  //图标X位置,左上角第一个为0,向左递增,共cell_count_x个
   launcher:y="1" //图标Y位置,左上角第一个为0,向下递增,共cell_count_y个
   launcher:spanX="3"                                           //在x方向上所占格数
   launcher:spanY="2" />                                        //在y方向上所占格数
1
2
3
4
5
6
7
8
搜索栏:
<search                                //搜索栏
	launcher:screen="1"               //从0开始,第2屏
	launcher:x="0"                    //图标X位置
	launcher:y="1"/>                  //图标Y位置
1
2
3
4
链接:
<shortcut
	launcher:title="@string/google"                         //链接的标签
	launcher:icon="@drawable/google"                        //链接的icon
	launcher:uri="http://www.baidu.com"                  //链接的uri地址,支持网址、action等
	launcher:screen="1"                                  //第1屏
	launcher:x="0"                                        //图标X位置
	launcher:y="3" />                                //图标Y位置 
1
2
3
4
5
6
7
下面列举几个常用launcher:uri的写法:

跳转到网页: “http://www.google.com”
跳转到设置的辅助功能:"#Intent;action=android.settings.ACCESSIBILITY_SETTINGS;end"
打开音乐文件:“file:///mnt/sdcard/song.mp3#Intent;action=android.intent.action.VIEW;type=audio/mp3;end”
指定应用程序打开音乐文件:“file:///mnt/sdcard/song.mp3#Intent;action=android.intent.action.VIEW;type=audio/mp3;component=com.android.music/.MusicBrowserActivity;end”
如果你觉得链接格式容易出错,你可以先写一个对应的intent,然后uri=intent.toUri(0)

Intent it = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(new File("/mnt/sdcard/song.mp3" ));
it.setDataAndType(uri, “audio/mp3”);
it.setClassName(“com.android.music”, “com.android.music.MusicBrowserActivity”);
String lancher_uri = it.toUri(0);

文件夹:
<folder launcher:title="@string/WS_Utility"
   launcher:x="4" 
   launcher:y="0"
   launcher:screen="2"
>
<favorite launcher:packageName="com.mx.browser" launcher:className="com.mx.browser.SplashActivity"  launcher:x="0" launcher:y="0" />
<favorite launcher:packageName="com.dropbox.android" launcher:className="com.dropbox.android.activity.DropboxBrowser"  launcher:x="1" launcher:y="0"  />
<favorite launcher:packageName="cn.wps.moffice_eng" launcher:className="cn.wps.moffice.documentmanager.PreStartActivity" launcher:x="2" launcher:y="1" />
</folder>
1
2
3
4
5
6
7
8
9
2. hotseat
Hotseat为底部的导航条,用于配置常用的app桌面图标。

配置
values/config.xml

<!-- Hotseat -->
    <bool name="hotseat_transpose_layout_with_orientation">true</bool>//hotseat是否会跟随手机方向移动位置
    <integer name="hotseat_cell_count">5</integer> //hotseat上可配置的图标数,但一定会有个allapp按钮,所以用户配置的图标数是hotseat_cell_count-1
    <integer name="hotseat_all_apps_index">2</integer>  // allapp按钮所在的位置,从左往右,从0开始算。
    <!-- must be between 0 and 100 -->
    <integer name="hotseat_item_scale_percentage">100</integer>  //图标的缩放比例
1
2
3
4
5
6
注:以上配置android10.0以上无效

配置应用图标
xml/default_workspace.xml
注:同workspace下的favorite: 应用程序快捷方式。仅有两处区别

launcher:container:表示应用快捷方式所在位置,-100为桌面图标 ,-101为hotseat图标;默认为-100 ,在这里需要标识为-101 ,代表是hotseat的默认按钮。
launcher:screen:代表按钮的位置,0是第一个位置。ALlApp按钮默认是2(见values/config.xml中的hotseat_all_apps_index),所以上面并没有screen为2的标签
   <favorite
        launcher:packageName="com.android.browser"
        launcher:className="com.android.browser.BrowserActivity"
        launcher:container="-101"
        launcher:screen="0"
        launcher:x="0"
        launcher:y="0" />

   <favorite
        launcher:packageName="com.android.settings"
        launcher:className="com.android.settings.Settings"
        launcher:container="-101"
        launcher:screen="1"
        launcher:x="1"
        launcher:y="0" />



    <favorite
        launcher:packageName="com.android.gallery3d"
        launcher:className="com.android.camera.CameraLauncher"
         launcher:container="-101"
        launcher:screen="3"
        launcher:x="3"
        launcher:y="0" />

猜你喜欢

转载自blog.csdn.net/m0_66587877/article/details/132055352