android6.0设置默认Luncher方式
来源:互联网 发布:网络二哥是什么意思 编辑:程序博客网 时间:2024/06/05 03:02
1.设置默认Launcher,但不是唯一的,可以在设置里面去切换的方法。
frameworks\base\services\core\java\com\android\server\am\ActivityManagerService.java中的startHomeActivityLocked方法里面添加如下代码。
boolean startHomeActivityLocked(int userId, String reason) {
if (mFactoryTest == FactoryTest.FACTORY_TEST_LOW_LEVEL
&& mTopAction == null) {
// We are running in factory test mode, but unable to find
// the factory test app, so just sit around displaying the
// error message and don't try to start anything.
return false;
}
/**
* yf add
* set default launcher
*/
ComponentName DefaultLauncher=new
ComponentName("com.yougfeel.mywy","com.yougfeel.mywy.MainActivity"); //此处设置默认Launcher的包类名
//Slog.d(TAG,"set default launcher");
final PackageManager mPm = mContext.getPackageManager();
ArrayList<ResolveInfo> homeActivities = new ArrayList<ResolveInfo>();
ComponentName currentDefaultHome = mPm.getHomeActivities(homeActivities);
ComponentName[]mHomeComponentSet = new ComponentName[homeActivities.size()];
for (int i = 0; i < homeActivities.size(); i++) {
final ResolveInfo candidate = homeActivities.get(i);
//Slog.d(TAG,"homeActivities"+candidate);
final ActivityInfo info = candidate.activityInfo;
ComponentName activityName = new ComponentName(info.packageName, info.name);
mHomeComponentSet[i] = activityName;
}
IntentFilter mHomeFilter = new IntentFilter(Intent.ACTION_MAIN);
mHomeFilter.addCategory(Intent.CATEGORY_HOME);
mHomeFilter.addCategory(Intent.CATEGORY_DEFAULT);
List<ComponentName>Activities=new ArrayList();
mPm.replacePreferredActivity(mHomeFilter, IntentFilter.MATCH_CATEGORY_EMPTY,mHomeComponentSet, DefaultLauncher);
/**
* set default launcher end
*/
2.设置默认唯一的Launcher,在不去掉其他Launcher的情况下。
+++ b/frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -4238,6 +4238,15 @@ public class PackageManagerService extends IPackageManager.Stub {
if (N == 1) {
return query.get(0);
} else if (N > 1) {
+ for(int i = 0; i < N; i++){
+ ResolveInfo ri = query.get(i);
+ String default_Launcher = SystemProperties.get("ro.yf.default_Launcher", "none");
+ if(default_Launcher.isEmpty() || default_Launcher.equals("none")){
+ break;
+ }else if(ri.activityInfo.packageName.equals(default_Launcher)) {
+ return ri;
+ }
+ }
final boolean debug = ((intent.getFlags() & Intent.FLAG_DEBUG_LOG_RESOLUTION) != 0);
- android6.0设置默认Luncher方式
- Android6.0 设置默认输入法
- [RK3288][Android6.0] 调试笔记 --- 设置中文为默认输入法
- Luncher
- Luncher
- Android6.0权限设置
- [RK3288][Android6.0] 调试笔记 --- 开机设置默认出厂时间方法
- [RK3288][Android6.0] 调试笔记 --- 设置系统默认显示为竖屏
- android 用Luncher启动应用的方式
- android 用Luncher启动应用的方式
- Android6.0仿微信权限设置
- Android6.0 动态权限设置
- android6.0下载路径设置
- Android6.0 设置永不休眠
- VSS设置默认密码方式
- 设置文件默认打开方式
- 设置文件默认打开方式
- WPS 设置默认粘贴方式
- axis2 messageReceiver
- 如何判定人机交互设计做的好不好
- 指针与整数
- Transform组件
- 控制反转与依赖注入
- android6.0设置默认Luncher方式
- 最长递增子序列
- 高通平台 UART log 开启方法
- 内核抢占
- ReactNative学习第一天
- C++中vector的用法详解
- Activiti获取当前任务后续路径,动态生成执行路径按钮
- 神华SAP物资采购项目经验总结
- void类型指针与空指针