思路
系统有多个桌面应用时,第一次刷机开机会弹出选择桌面的对话框。只需要直接跳过选择流程并选中目标应用即可。
实现
相关文件
- frameworks/base/core/java/com/android/internal/app/ResolverActivity.java(选择默认桌面的界面)
参考链接:https://blog.youkuaiyun.com/wxd_csdn_2016/article/details/87708307
添加此函数,到frameworks/base/core/java/com/android/internal/app/ResolverActivity.java
/** 设置默认的桌面应用 */
private void setupDefaultLauncher() {
int position = mAdapter.getDefaultHomePosition("你指定的包名");
if (position == -1) {
if (DEBUG)
Log.w(TAG, "not find default Home");
return;
}
startSelected(position, true);
finish();
}
添加次函数到其内部类,ResolveListAdapter:
/** 获取该包名的应用所处位置 */
public int getDefaultHomePosition(String packageName){
for (int i = 0; i < mList.size(); i++) {
ResolveInfo info = mList.get(i).ri;
if (info.activityInfo.packageName.equals(packageName)) {
return i;
}
}
return -1;
}
在frameworks/base/core/java/com/android/internal/app/ResolverActivity.java中,找到onCreate函数,最后一行添加:
setupDefaultLauncher();
到此结束。
--- a/alps/frameworks/base/core/java/com/android/internal/app/ResolverActivity.java
+++ b/alps/frameworks/base/core/java/com/android/internal/app/ResolverActivity.java
@@ -120,6 +120,7 @@ public class ResolverActivity extends AlertActivity implements AdapterView.OnIte
onCreate(savedInstanceState, intent, getResources().getText(titleResource),
null, null, true);
+ setupDefaultLauncher();
}
当AOSP系统存在多个桌面应用时,通常首次启动会提示选择默认桌面。本文介绍如何避免这个选择流程,直接设定目标应用为默认桌面。主要涉及对ResolverActivity.java的修改,通过添加特定函数到ResolveListAdapter内部类,并在onCreate函数中调用,实现开机不提示选择默认桌面。
3963

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



