android在新安装桌面应用时,点击home键会弹出选择默认桌面程序的选择框,可是在用户点击总是时,下次在点击后就是打开默认启动器,可是我怎么修改这个默认的设置呢。
因为我们没有系统权限,难道只能跳到默认启动器中清除默认设置吗,答案否定的。
因为android扫描到新的launcher activity时,会清除掉旧的默认,所以只要我们动态的添加新的launcher activity时,系统会清除掉找个默认设置,下面时步骤。
1.在manifest中添加权限 <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
2.设置一个空的activity 例如FakeHome,同时再manifest中添加
<activity
android:name="com.beanpai.uu.activity.FakeHome"
android:enabled="false"
>
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.HOME" />
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
3.在代码中添加
Context c = this;
PackageManager p = c.getPackageManager();
ComponentName cN = new ComponentName(c, FakeHome.class);
p.setComponentEnabledSetting(cN, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
Intent selector = new Intent(Intent.ACTION_MAIN);
selector.addCategory(Intent.CATEGORY_HOME);
c.startActivity(selector);
p.setComponentEnabledSetting(cN, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
此时就会让用户悬着默认的桌面程序
网友评论