Launcher添加hotseat图标布局

Launcher的hotseat客户要求添加一些指定应用图标。

首先打开机器将要布局的图标手动移动到hotseat位置上面。
然后使用adb命令将data/data/com.android.launcher3/databases这个文件pull出来。这个文件夹是Luancher的数据库文件。里面保存了相关应用的图标信息。

使用SQLiteStudio工具打开pull出来的db文件。打开Tables下的表格就可以看到图标信息了。


打开Launcher3\res\xml\default_workspace_*x*.xml默认布局xml文件,看看有没有包含的hostseat布局,没有就添加一个,我这边是没有的,添加下面应用一个独立的hostseat布局文件:

<include launcher:workspace="@xml/dw_tablet_hotseat" />

然后同目录下创建dw_tablet_hotseat.xml。里面的一个resolve节点对应一个图标。如录音机图标:

    <resolve
        launcher:container="-101"
        launcher:screen="0"
        launcher:x="0"
        launcher:y="0" >
		<favorite
           launcher:uri="#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.android.soundrecorder/.SoundRecorder;end" />
    </resolve>

launcher:container="-101"代表唯一hotseat位置。
launcher:screen="0"表示第一格,下一个图标递增。
launcher:x="0"表示x坐标,其他的图标递增。
launcher:y="0"表示y坐标,后续的y坐标也是0。
<favorite
           launcher:uri= 后面填应用的intent信息,数据库里面复制出来就可以了。

完整的dw_tablet_hotseat.xml:

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2015 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<favorites xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3">
    <!-- Hotseat (We use the screen as the position of the item in the hotseat) -->
    <!-- Messaging, Email, Browser, [All Apps], Music, Gallery, Camera -->
    <resolve
        launcher:container="-101"
        launcher:screen="0"
        launcher:x="0"
        launcher:y="0" >
		<favorite
           launcher:uri="#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.android.soundrecorder/.SoundRecorder;end" />
    </resolve>

    <resolve
        launcher:container="-101"
        launcher:screen="1"
        launcher:x="1"
        launcher:y="0" >
		<favorite
           launcher:uri="#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.android.gallery3d/.app.GalleryActivity;end" />
    </resolve>
	
    <resolve
        launcher:container="-101"
        launcher:screen="2"
        launcher:x="2"
        launcher:y="0" >
		<favorite
           launcher:uri="#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.android.camera2/com.android.camera.CameraLauncher;end" />
    </resolve>
	
    <resolve
        launcher:container="-101"
        launcher:screen="3"
        launcher:x="3"
        launcher:y="0" >
		<favorite
           launcher:uri="#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.android.chrome/com.google.android.apps.chrome.Main;end" />
    </resolve>
	
    <resolve
        launcher:container="-101"
        launcher:screen="4"
        launcher:x="4"
        launcher:y="0" >
		<favorite
           launcher:uri="#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.android.deskclock/.DeskClock;end" />
    </resolve>

    <resolve
        launcher:container="-101"
        launcher:screen="5"
        launcher:x="5"
        launcher:y="0" >
        <favorite launcher:uri="#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.android.calendar/.AllInOneActivity;end" />
    </resolve>

    <resolve
        launcher:container="-101"
        launcher:screen="6"
        launcher:x="6"
        launcher:y="0" >
		<favorite
           launcher:uri="#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.android.music/.MusicBrowserActivity;end" />
    </resolve>

</favorites>

添加上面xml后,重新编译升级就可以看到默认的布局了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/935249.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GNSS误差源及差分定位

GNSS误差源&#xff1a; &#xff08;一&#xff09;卫星星历误差 由星历信息所得出的卫星位置坐标与实际位置坐标的偏差就是星历误差。星历信息是由 GPS 地面部分测量计算后传入空间部分的。由于卫星在运动中要受到各种摄动力的作用, 而地面部分又很难精确测量这些作用力,…

【数据结构——内排序】希尔排序(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 测试说明 我的通关代码: 测试结果&#xff1a; 任务描述 本关任务&#xff1a;实现希尔排序算法。 测试说明 平台会对你编写的代码进行测试&#xff1a; 测试输入示例&#xff1a; 10 9 8 7 6 5 4 3 2 1 0 (说明&#xff1a;第一行是元素个数&a…

通俗易懂的 Nginx 反向代理 配置

通俗易懂的 Nginx 反向代理 配置 首先 root 与 alias 的区别 root 是直接拼接 root location location /i/ {root /data/w3; }当请求 /i/top.gif &#xff0c;/data/w3/i/top.gif 会被返回。 alias 是用 alias 替换 location location /i/ {alias /data/w3/images/; }当请…

网页爬虫技术全解析:从基础到实战

引言 在当今信息爆炸的时代&#xff0c;互联网上的数据量每天都在以惊人的速度增长。网页爬虫&#xff08;Web Scraping&#xff09;&#xff0c;作为数据采集的重要手段之一&#xff0c;已经成为数据科学家、研究人员和开发者不可或缺的工具。本文将全面解析网页爬虫技术&…

分页查询和事务管理

前端需要给后端传递的参数&#xff1a; page&#xff1a;当前页码&#xff0c;用于指定用户想要查看的页。pageSize&#xff1a;每页展示记录数&#xff0c;用于指定每页应显示多少条记录。 后端需要给前端返回的结果&#xff1a; total&#xff1a;总记录数&#xff0c;用于告…

MATLAB深度学习(七)——ResNet残差网络

一、ResNet网络 ResNet是深度残差网络的简称。其核心思想就是在&#xff0c;每两个网络层之间加入一个残差连接&#xff0c;缓解深层网络中的梯度消失问题 二、残差结构 在多层神经网络模型里&#xff0c;设想一个包含诺干层自网络&#xff0c;子网络的函数用H(x)来表示&#x…

go语言zero框架调用自己的安装的redis服务配置与使用

在 Go 语言中调用自己安装的 Redis 服务&#xff0c;可以分为几个步骤&#xff1a;从安装 Redis 服务到配置、启动 Redis&#xff0c;最后在 Go 代码中连接并使用 Redis。以下是详细的步骤&#xff1a; ## 1. 安装 Redis 服务 ### 1.1 在 Linux 系统上安装 Redis 假设你使用…

Cerebras 推出 CePO,填补推理与规划能力的关键空白

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Google Cloud Database Option(数据库选项说明)

关系数据库 在关系数据库中&#xff0c;信息存储在表、行和列中&#xff0c;这通常最适合结构化数据。因此&#xff0c;它们用于数据结构不经常更改的应用程序。与大多数关系数据库交互时使用 SQL&#xff08;结构化查询语言&#xff09;。它们为数据提供 ACID 一致性模式&am…

ArcGIS将MultiPatch数据转换为Obj数据

文章目录 ArcGIS将MultiPatch数据转换为Obj数据1 效果2 技术路线2.1 Multipatch To Collada2.2 Collada To Obj3 代码实现4 附录4.1 环境4.2 一些坑ArcGIS将MultiPatch数据转换为Obj数据 1 效果 2 技术路线 MultiPatch --MultipatchToCollada–> Collada --Assimp–> O…

微信小程序5-图片实现点击动作和动态加载同类数据

搜索 微信小程序 “动物觅踪” 观看效果 感谢阅读&#xff0c;初学小白&#xff0c;有错指正。 一、功能描述 a. 原本想通过按钮加载背景图片&#xff0c;来实现一个可以点击的搜索button&#xff0c;但是遇到两个难点&#xff0c;一是按钮大小调整不方便&#xff08;网上搜索…

使用nmap确定扫描目标

nmap可以通过IP、主机名、域名等指定单一目标&#xff0c;也可以使用IP范围、列表文件、等指定多个IP。 单一目标 IP nmap IP主机名 nmap hostname域名 nmap domainname&#xff0c;可以通过--dns-server指定dns服务器地址&#xff0c;也可以通过--system-dns指定使用操作系统…

【C++】关联存储结构容器-set(集合)详解

目录 一、基本概念 二、内部实现 三、常用操作 3.1 构造函数 3.2 插入操作 3.3 删除操作 3.4 查找操作 3.5 访问元素 3.6 容量操作 3.7 交换操作 四、特性 五、应用场景 结语 一、基本概念 set是C标准模板库&#xff08;STL&#xff09;中的一种关联容器&#xf…

ssm-day03 aoptx

AOP AOP指的是面向对象思想编程问题的一些补充和完善 soutp、soutv 解耦通俗理解就是把非核心代码剥出来&#xff0c;减少对业务功能代码的影响 设计模式是解决某些特定问题的最佳解决方案&#xff0c;后面一点要记得学这个&#xff01;&#xff01;&#xff01; cxk唱跳哈…

谷粒商城—分布式高级①.md

1. ELASTICSEARCH 1、安装elastic search dokcer中安装elastic search (1)下载ealastic search和kibana docker pull elasticsearch:7.6.2 docker pull kibana:7.6.2(2)配置 mkdir -p /mydata/elasticsearch/config mkdir -p /mydata/elasticsearch/data echo "h…

数据仓库的性能问题及解决之道

随着数据量不断增长和业务复杂度逐渐攀升&#xff0c;数据处理效率面临巨大挑战。最典型的表现是面向分析型场景的数据仓库性能问题越来越突出&#xff0c;压力大、性能低&#xff0c;查询时间长甚至查不出来&#xff0c;跑批跑不完造成生产事故等问题时有发生。当数据仓库出现…

云和恩墨 zCloud 与华为云 GaussDB 完成兼容性互认证

近日&#xff0c;云和恩墨&#xff08;北京&#xff09;信息技术有限公司&#xff08;以下简称&#xff1a;云和恩墨&#xff09;的多元数据库智能管理平台 zCloud 与华为云计算技术有限公司&#xff08;以下简称&#xff1a;华为云&#xff09;的 GaussDB 数据库完成了兼容性互…

分布式专题(4)之MongoDB快速实战与基本原理

一、MongoDB介绍 1.1 什么是MongoDB MongoDB是一个文档数据库(以JSON为数据模型)&#xff0c;由C语言编写&#xff0c;旨在为WEB应用提供可扩展的高性能存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系数据库当中功能最丰富&#xf…

03篇--二值化与自适应二值化

二值化 定义 何为二值化&#xff1f;顾名思义&#xff0c;就是将图像中的像素值改为只有两种值&#xff0c;黑与白。此为二值化。 二值化操作的图像只能是灰度图&#xff0c;意思就是二值化也是一个二维数组&#xff0c;它与灰度图都属于单信道&#xff0c;仅能表示一种色调…

Linux下redis环境的搭建

1.redis的下载 redis官网下载redis的linux压缩包&#xff0c;官网地址:Redis下载 网盘链接&#xff1a; 通过网盘分享的文件&#xff1a;redis-5.0.4.tar.gz 链接: https://pan.baidu.com/s/1cz3ifYrDcHWZXmT1fNzBrQ?pwdehgj 提取码: ehgj 2.redis安装与配置 将包上传到 /…