由于项目需求更改,在此做保留以后方便使用
在 frameworks/base/core/java/com/android/internal/app/ResolverActivity.java 中作修改
根据需要默认Launcher来设置默认
private void setDefaultLauncher(String defPackageName,String defClassName) {
if ((defPackageName != null && defPackageName.trim().length() > 1) && (defClassName != null && defClassName.trim().length() > 0)) {
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.MAIN");
filter.addCategory("android.intent.category.HOME");
filter.addCategory("android.intent.category.DEFAULT");
Intent intent=new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
List<ResolveInfo> list = new ArrayList<ResolveInfo>();
list = getPackageManager().queryIntentActivities(intent, 0);
final int N = list.size();
ComponentName[] set = new ComponentName[N];
int bestMatch = 0;
for (int i=0; i<N; i++) {
ResolveInfo r = list.get(i);
set[i] = new ComponentName(r.activityInfo.packageName,
r.activityInfo.name);
if (r.match > bestMatch) bestMatch = r.match;
}
ComponentName preActivity = new ComponentName(defPackageName, defClassName);
getPackageManager().addPreferredActivity(filter, bestMatch, set,preActivity);
}
}
在onCreate方法中添加调用
protected void onCreate(Bundle savedInstanceState) {
//++++++++++++
boolean firstBoot = (Settings.System.getInt(getApplication().getContentResolver(),
Settings.System.DEFAULT_HOME_SETTING_CHANGED, 0) == 0);
if(firstBoot){
String defPackageName = "com.panasonic.india.flexuihome";
String defClassName = "com.panasonic.india.flexuihome.Launcher";
setDefaultLauncher(defPackageName,defClassName);
android.util.Log.i("deflauncher : ","deflauncher : PackageName = "+
defPackageName+" ClassName = "+defClassName);
Intent defIntent = new Intent();
defIntent.setClassName(defPackageName, defClassName);
defIntent.setAction("android.intent.action.MAIN");
defIntent.addCategory("android.intent.category.HOME");
defIntent.addCategory("android.intent.category.DEFAULT");
startActivity(defIntent);
Settings.System.putInt(getApplication().getContentResolver(),
Settings.System.DEFAULT_HOME_SETTING_CHANGED,1);
this.finish();
}
//++++++++++++
// Use a specialized prompt when we're handling the 'Home' app startActivity()
final int titleResource;
final Intent intent = makeMyIntent();
final Set<String> categories = intent.getCategories();
if (Intent.ACTION_MAIN.equals(intent.getAction())
&& categories != null
&& categories.size() == 1
&& categories.contains(Intent.CATEGORY_HOME)) {
titleResource = com.android.internal.R.string.whichHomeApplication;
} else {
titleResource = com.android.internal.R.string.whichApplication;
}
onCreate(savedInstanceState, intent, getResources().getText(titleResource),
null, null, true);
}
DEFAULT_HOME_SETTING_CHANGED的设置
/android/framworks/base/
在core/java/android/provider/Settings.java的public static final class System extends NameValueTable{}中添加
public static final String DEFAULT_HOME_SETTING_CHANGED = "default_home_setting_changed";
packages/SettingsProvider/res/values/defaults.xml中添加
<integer name="default_launcher_value">0</integer>
packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
在private void loadSystemSettings(SQLiteDatabase db){}中添加中添加
loadIntegerSetting(stmt, Settings.System.DEFAULT_HOME_SETTING_CHANGED, R.integer.default_launcher_value);
相关推荐
安卓Android源码——安卓Android Launcher 桌面分页滑动代码.rar
安卓Android源码——Android Launcher 源码修改可编译.zip
Android Launcher 源码修改可编译.zip源码资源下载Android Launcher 源码修改可编译.zip源码资源下载
Android高级应用源码-Android Launcher 源码修改可编译.zip
Android Launcher 源码修改可编译,作为app开发参考用。
修改Android5.0 launcher 小部件预览图片大小
Hotseat系统默认的是3个图标,我修改成5个,因为我不是UI,所以图片资源我是截图做的,比较丑陋,你可以自己替换。 增加了广播接收器,实现开机启动,添加了一个Service,该Service监听USB和HDMI接口,USB的监听注释...
更改官方的Launcher3使得可以在Android Studio编译 原始地址,从5892520提交开始 最小sdk版本为16 Android 5.0 版本及以上可能会出现因为相同权限声明而不能安装的问题 如果你想要可以在Eclipse编译的版本,可以看...
Launcher就是Android的應用程式啟動器,Launcher的功能還包含:桌面的切換、應用程式快捷(shortcut)功能、背景圖(Wallpaper)功能等等。因此,修改Launcher可以改變一些很深層的UI功能。
根据android4.4 launcher3源码进行修改,导入Eclipse可直接使用,进行编译, ,Launcher是安卓系统中的桌面启动器,
1.适用android 盒子,1920*1080(密度240),1280*720(密度160),1280*720(密度213) 2,eclipse 代码 3,主页功能介绍(第一排,左边语音调起,右边时间,第二排,常用国外视频app,第三排所有apps,第四排设置,...
下载的资源按照我文章中所描述的内容https://blog.csdn.net/weixue9/article/details/107814561针对原生的launcher3代码做了大部分修改,横竖屏都有适配,我自己使用时直接删除了hotseat相关的部分,不过下载资源中...
Android 8.0 Launcher3 的源代码 ,修改了系统原有的Launcher3的自定义权限冲突。
Android-launcher源码全面分析 一 Launcher默认界面配置(default workspace) 2 1 界面默认配置文件 2 2 LauncherProvider java的loadFavorites分析 3 二 Icon修改 界面布局调整 壁纸设置 5 1 图标大小和标题大小 5...
包含客户端 Launcher3 修改 包含服务端 OverlayScreen(可替换成你自己客需定制负一屏View) 基于android11.0 绝对好用,网上目前最全代码 实现效果图 ...
安卓4.4 launcher3源码桌面无法循环滚动,修改pagedView实现
基于原生launcher做定制,做了3个项目了,这里有些经验与大家分享一下,顺便混点分。里边的大部分内容是通用的具有参考价值,小部分内容是我所涉及的项目特定的。
从google上获取Launcher3的源码,以及需要导入的一些jar包,修改至可编译,可以在此基础上自己再扩展其他的更改,基于Android 5.0.1的target
7.1 8.1 9.0 10.0 两个launcher之间切换,设置默认launcher
更改官方的Launcher3使得可以在Android Studio编译,增加了 Launcher3上滑显示应用列表和下滑关闭显示应用列表。