[FAQ]当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher?
[DESCRIPTION]
当系统存在多个Launcher时,开机完成并解锁后,系统会弹出一个选择框让用户选择
进入哪一个Launcher,如果不想选择,而是想直接进入某一个默认的Launcher,并且
用户在设置->应用程序->管理应用程序->所有应用程序列表,找到之前设置的那个默
认的Launcher,并且取消了默认值,可以重新弹出launcher选框。
[SOLUTION]
下面以设置Google Launcher2作为默认启动的Launcher为例,
其package name 为 com.android.launcher
launcher activity name 为 com.android.launcher2.Launcher
编辑packages/apps/Provision/src/com/android/DefaultActivity.java文件
……
// remove this activity from the package manager.
PackageManager pm = getPackageManager();
//add start
String examplePackageName = “com.android.launcher”; //请修改为需要设置
的 package name
String exampleActivityName = “com.android.launcher2.Launcher //请修
改为需要设置的 launcher activity name
Intent intent=new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
List<ResolveInfo> resolveInfoList =
pm.queryIntentActivities(intent, 0);
if(resolveInfoList != null){
int size = resolveInfoList.size();
for(int j=0;j<size;){
final ResolveInfo r = resolveInfoList.get(j);
if(!r.activityInfo.packageName.equals(examplePackageName)){
resolveInfoList.remove(j)
size -= 1;
}else
{
j++;
}
}
ComponentName[] set = new ComponentName[size];
ComponentName defaultLauncher=new
ComponentName(examplePackageName, exampleActivityName);
int defaultMatch=0;
for(int i=0;i<size;i++){
final ResolveInfo resolveInfo =
resolveInfoList.get(i);
Log.d(TAG, resolveInfo.toString());
set[i] = new
ComponentName(resolveInfo.activityInfo.packageName,resolveInfo.activityInfo.name);
if(defaultLauncher.getClassName().equals(resolveInfo.activityInfo.name)){
defaultMatch = resolveInfo.match;
}
}
Log.d(TAG,”defaultMatch=”+Integer.toHexString(defaultMatch));
IntentFilter filter=new IntentFilter();
filter.addAction(Intent.ACTION_MAIN);
filter.addCategory(Intent.CATEGORY_HOME);
filter.addCategory(Intent.CATEGORY_DEFAULT);
pm.clearPackagePreferredActivities(defaultLaunchr.getPackageName());
pm.addPreferredActivity(filter, defaultMatch,set,defaultLauncher);
}
//add end
// remove this activity from the package manager.
ComponentName name = new ComponentName(this,
DefaultActivity.class);
pm.setComponentEnabledSetting(name,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
……
然后修改packages/apps/Provision/AndroidManifest.xml文件,增加以下语句:
<uses-permission
android:name=”android.permission.SET_PREFERRED_APPLICATIONS” />
备注:
上面所添加的全部代码,一定要放在pm.setComponentEnabledSetting这两行语句之
前,
特别说明:
如果以上步骤可以达到目的,请忽略以下描述
如果以上步骤不能达到目的
请再修改 packageManagerService.java
(framework/base/services/java/com/android/server/pm/)
的 findPreferredActivity 方法
将此方法的比较靠后的一段代码添加如下语句
if (!pa.mPref.sameSet(query, priority)) {
if(!(intent.getAction() != null
&& intent.getAction().equals(intent.ACTION_MAIN)
&& intent.getCategories()!=null
&& intent.getCategories().contains(intent.CATEGORY_HOME))) //添加
{ //添加这行
Slog.i(TAG, “Result set changed, dropping preferred activity
+ intent + ” type ” + resolvedType);
mSettings.mPreferredActivities.removeFilter(pa);
return null;
} //添加这行
Slog.i(TAG,”Result set not change, not drop preferred activity
special intent: “+intent);//添加这行
}
即可
相关推荐
Android_launcher源码全面分析
一 Launcher默认界面配置(default workspace) 2 1 界面默认配置文件 2 2 LauncherProvider java的loadFavorites分析 3 二 Icon修改 界面布局调整 壁纸设置 5 1 图标大小和标题大小 5 2 Launcher 图标加入默认背景 6 3 更换Launcher默认壁纸 7 4 壁纸设置过程: 8 三 Launcher启动和初始化 9 1 Launcher进程启动过程 9 2 Launcher初始化――LauncherApplication 10 3 Launcher java初始化 12 1 Callbacks接口 15 2 数据加载流程 16 4 LoaderTask的run 方法 17 5 workspace加载数据 18 6 workspace绑定数据 20 7 ALL APP数据加载绑定 22 五 HotSeat分析 24 1 Hotseat配置文件 24 2 Hotseat构造函数 26 3 Hotseat加载数据 27 4 Hotseat绑定数据 27 5 Hotseat类 28 6 总结 30 六 页面滑动 PagedView 30 七 AllApp全部应用列表 AppsCustomizeTabHost 38 1 AllApp列表配置文件 38 2 AppsCustomizeTabHost分析 40 3 Tab变化时执行onTabChanged 41 八 AllApp界面拖拽元素 42 1 触摸拦截 43 2 handleTouchEvent方法 43 4 拖曳按钮 44 九 Launcher启动APP流程 45 1 WorkSpace触摸 45 2 CellLayout的onInterceptTouchEvent 方法 46 3 WorkSpace的onTouch 事件 47 4 BubbleTextView 48 5 onClick 方法 49 6 总结 50 1 常用类介绍 50 2 Launcher的数据库 51">一 Launcher默认界面配置(default workspace) 2 1 界面默认配置文件 2 2 LauncherProvider java的loadFavorites分析 3 二 Icon修改 界面布局调整 壁纸设置 5 1 图标大小和标题大小 5 2 Launcher 图标加入默认背景 6 3 更换Launcher默认壁纸 7 [更多]
系统存在多个Launcher时,如何设置开机自动进入默认的Launcher
[FAQ]当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher? [DESCRIPTION] 当系统存在多个Launcher时,开机完成并解锁后,系统会弹出一个选择框让用户选择 进入哪一个Launcher,如果不想选择,而是想直接进入某一个默认的Launcher,并且 用户在设置->应用程序->管理应用程序->所有应用程序列表,找到之前设置的那个默 认的Launc
Android开发中Launcher3常见默认配置修改方法总结
主要介绍了Android开发中Launcher3常见默认配置修改方法,结合实例形式分析了Android Launcher3的功能与配置修改相关操作技巧,需要的朋友可以参考下
Windows转发Linux系统的X11(一):By XMing
Win11(as client) + Centos7(as server)测试通过.
【Python&RS】Rasterio库安装+基础函数使用教程
Rasterio是一个Python库,专门用于栅格数据的读写操作。它支持多种栅格数据格式,如GeoTIFF、ENVI和HDF5,为处理和分析栅格数据提供了强大的工具。RasterIO适用于各种栅格数据应用,如卫星遥感、地图制作等。这篇文章跟大家介绍一下Rasterio库的安装以及一些基本函数的使用教程,附带源码。
工程师必看:如何用定时截尾试验快速验证产品MTBF(附真实案例解析)
本文为硬件工程师详细解析了如何运用定时截尾试验快速验证产品MTBF(平均无故障工作时间)。通过七步实战法,结合工业物联网网关的真实案例,阐述了从参数设定、试验执行到结果判读的完整流程,并提供了MATLAB脚本实现自动化计算与可视化,帮助工程师在有限时间内科学评估产品可靠性。
Android系统存在多个Launcher时,设置开机进入默认的Launcher
问题提出: 当系统存在多个Launcher时,开机完成并解锁后,系统会弹出一个选择框让用户选择 进入哪一个Launcher,如果不想选择,而是想直接进入某一个默认的Launcher,并且 用户在设置->应用程序->管理应用程序->所有应用程序列表,找到之前设置的那个默 认的Launcher,并且取消了默认值,可以重新弹出launcher选框。
Proxmox VE安装卡顿深度解析:显卡驱动与BIOS设置的黄金法则
本文深度解析Proxmox VE安装卡顿的根本原因,指出显卡驱动与BIOS设置是两大关键因素。文章详细阐述了如何通过添加`nomodeset`内核参数解决显卡兼容性问题,并提供了针对不同主板品牌的BIOS显卡优先级设置黄金法则。同时,还分享了从预处理到高级调试的完整实战排查流程,帮助用户从源头杜绝安装卡顿,确保PVE系统顺利部署。
android 当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher2
[DESCRIPTION] 当系统存在多个Launcher时,开机完成并解锁后,系统会弹出一个选择框让用户选择进入哪一个Launcher,如果不想选择,而是想直接进入某一个默认的Launcher,并且用户在设置->应用程序->管理应用程序->所有应用程序列表,找到之前设置的那个默认的Launcher,并且取消了默认值,可以重新弹出launcher选框。 [SOLUTION] 下面
大疆智图002:大疆智图倾斜摄影建模流程
本文主要介绍大疆智图倾斜摄影建模流程,包括新建工程、成果路径设置、导入照片、第一遍空三、像控刺点、第二遍空三、精度报告查看、三维重建等流程。
【自然语言处理】【聚类】TELL:可解释神经聚类
超越分类的XAI:可解释神经聚类 《XAI Beyond Classification: Interpretable Neural Clustering》 论文地址:https://www.jmlr.org/papers/volume23/19-497/19-497.pdf 一、简介 本文研究了可解释AI(XAI\text{XAI}XAI)和数据聚类这两个挑战性问题。第一个问题是如何设计一种具有固定可解释性的神经网络,而不是给出一个黑盒模型的事后解释。第二个问题是,使用可微分神经网络来实现离散的k-me
android 开机不弹出Launcher选择,直接进入需要默认的Launcher,
参考了一下两篇文章: http://blog.youkuaiyun.com/jia4525036/article/details/18036765 http://blog.sina.com.cn/s/blog_4ad8d46c01019zq4.html 由于项目需求更改,在此做保留以后方便使用 在 frameworks/base/core/java/com/android/interna
AMBA-CHI协议详解(一)
CHI体系结构是一种可扩展、一致性的集线器接口和片上互联,可由多个组件使用。CHI体系结构允许根据性能、功耗和面积系统要求灵活地进行组件连接拓扑。硬件一致性使系统组件能够共享内存,而无需维护软件缓存以保持一致性。如果两个组件对同一存储器位置的写入可被所有组件以相同的顺序观察到,则存储器区域是一致的。
android 设置默认launcher
本博客基于 Android 7.0,只作为沟通学习使用。 前言 平时使用android手机的时候我们可能会遇到下面的情况,比如:我们有多个浏览器,当我们没有设置哪一个为默认的浏览器并点击了一行网址时,就会弹出一个系统选择框,让用户选择一个浏览来打开这个网址,并且会让用户选择只使用一次还是将你选择的浏览器设为默认的浏览。那么问题就来了,如果我不想出现这个提示框,我就想第一次开机时,就自动帮我
[Python] 为什么你的脚本明明没报错,却什么也没发生?
Python脚本运行后没报错却没结果?这是许多开发者遇到的棘手问题。文章分析了六种常见原因:代码未进入目标逻辑分支、输出路径错误、中间数据为空、异常被吞掉、异步操作未完成、运行了错误脚本版本。建议通过"过程可视化"排查,如打印关键变量、检查工作目录、验证数据状态等。职场中更应关注结果验证而非单纯代码执行,确保脚本真正解决问题。建立结果验证意识是从"会写代码"到"稳定交付"的关键转变。
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
android 设置默认launcher 附上代码
当系统初始化完毕后会进入homeactivity: 具体代码流程: ActivityManagerService.java --> public void systemReady(final Runnable goingCallback) { ... mMainStack.resumeTop...
Devexpress16.2.6破解工具
Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具
Android 11 Framework 优化:屏蔽“系统启动中”提示,直达 Launcher
本文介绍了在Android 11平台上优化开机体验的实现方案。通过在Framework层修改代码,主要实现了三个关键优化:1)延迟退出开机动画直到真正的Launcher绘制完成;2)移除原有的开机动画退出逻辑;3)屏蔽默认的"系统启动中"过渡界面(FallbackHome)。这些修改使得开机动画能够持续显示,直到桌面完全加载完成,实现了从开机到桌面的无缝视觉过渡。具体修改涉及ActivityRecord.java、WindowManagerService.java和FallbackHom
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
Android 7.1设置默认Launcher重启后失效(需手动选择)
平台 RK3288 + Android 7.1 问题描述 安装Launcher应用, 并设置为默认主界面, 关机重启后, 无法默认, 仍然弹出选择框. 分析 LOG //开机后启动的第一个HOME, 是FallbackHome 2019-11-22 15:11:25.542 system_process I/ActivityManager: START u0 {act=android.inten...
Android系统级开发-将APK打包进SDK并设置为默认Launcher,自动开启无障碍权限
本文详细介绍了在Android 13 SDK中将自定义APK设为默认Launcher的完整方案。该方案适用于需要深度定制的工业设备、教育平板等场景,通过系统级集成实现开机即用,适用于Android 12/13/14系统。
开机默认Launcher
LAUNCH BY DEFAULT You've chosen to launch this app by default for some actions. packages\apps\Provision\src\com\android\provision\DefaultActivity.java /* * Copyright (C) 2008 The Android Ope
10分钟跑通图片文字识别:RapidOCR 从单张 OCR 到批量服务实战
RapidOCR 是一款免费的开源图片文字识别(OCR)工具包,默认支持中英混排识别,并覆盖日、韩、阿拉伯文等多语言。读完全文,你可以独立完成:一行命令装好 OCR 引擎、5 行代码识别一张图、调整识别参数、批量跑图,以及把 OCR 能力封装成 HTTP 接口。 ## 1 装好 OCR 引擎并跑通第一张图 安装很简单,一条 pip 命令就够。装完后先确认环境能正常工作: ```bash pi
Android Launcher分析和修改——Launcher默认界面配置以及其他的事项
最近工作都在修改Launcher,所以打算把分析源码和修改源码的过程记录下来,最近会写一些关于Launcher的分析和修改博文。因为我是修改4.0.3的Launcher,所以后面文章里面的Launcher都是基于Android4.0.3的Launcher2修改。Launcher源码比较多,而且里面应用了很多设计模式,要把它分析清楚要花不少精力,网上也有一些零碎的分析文章,不过关于修改的文章不多。所
[Android 笔记七] Launcher概念讲解
1,Launcher的定义 Android系统启动后,加载的第一个程序,是其他应用程序的入口。 2、.Manifest文件 如果你要开机启动一个替换Launcher的程序,只要在程序<intent-filter>里面加入action.MAIN 、 category.HOME、category.DEFAULT就可以。如果出现多个程序都加入这种intent,系统会弹出让你选择 哪个作为启动器。 <activity android:name=".MainActivity"
Android系统开发-选择并启动默认Launcher,2024Android常见笔试题
一线互联网Android面试题含详解(初级到高级专题)这些题目是今年群友去腾讯、百度、小米、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。并且大多数都整理了答案,熟悉这些知识点会大大增加通过前两轮技术面试的几率如果设置门槛,很多开发者朋友会因此错过这套高级架构资料,错过提升成为架构师的可能。这就失去了我们的初衷;让更多人都能通过高效高质量的学习,提升自己的技术和格局,升职加薪。最后送给大家一句话,望共勉,永远不要放弃自己的梦想和追求;
【Launcher 教程】从 URL Schemes 入门到用 Launcher 调用各效率软件
如果你刚接触 URL Schemes,请从头开始看,会有收获。 如果你对 URL Schemes 有基本了解,但是刚接触 Launcher,可以从基本使用开始看 如果你以前用过和买过 Launcher,不知道新版有什么区别,可以从高级功能开始看。 如果你对上述内容都有了解,但对 Launcher 的使用思路上有些不清晰,可以从使用思路开始看。 URL Schemes 是在 iOS 设备
3505



被折叠的 条评论
为什么被折叠?



