android将应用设置为启动器,android – 如何以编程方式设置默认应用启动器?

这实际上是可能的一个解决方法:

创建一个充当启动器的空活动,称为FakeLauncherActivity.将其添加到清单中作为禁用组件:

android:name="com.path.to.your.FakeLauncherActivity"

android:enabled="false">

检查您所需的启动器活动是否为默认启动器活动(使用您的问题的isMyAppLauncherDefault()).

如果没有,请提供用户选择首选的启动器活动,如下所示:

public static void resetPreferredLauncherAndOpenChooser(Context context) {

PackageManager packageManager = context.getPackageManager();

ComponentName componentName = new ComponentName(context, com.path.to.your.FakeLauncherActivity.class);

packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

Intent selector = new Intent(Intent.ACTION_MAIN);

selector.addCategory(Intent.CATEGORY_HOME);

selector.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(selector);

packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, PackageManager.DONT_KILL_APP);

}

此方法暂时启用FakeLauncherActivity,这将导致可用的启动器活动集中的更改,这迫使Android忘记其默认启动器.你会看到像…

521-735/system_process I/PackageManager﹕ Result set changed, dropping preferred activity for Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 } type null

…在你的日志中

该方法然后简单地打开一个启动器意图,您可以在其中看到所有安装的启动器和按钮“始终”/“只是一次”.

最后,该方法再次禁用FakeLauncherActivity,使其不显示在列表中.

您可以按照要求频繁重复,只有将所需的启动器活动设置为默认值,才能让用户继续操作.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值