首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >练习-在应用程序更新时删除别名

练习-在应用程序更新时删除别名
EN

Stack Overflow用户
提问于 2015-11-04 18:45:17
回答 2查看 1.2K关注 0票数 18

我已经实现了两个activity-alias,用户应该能够在运行时启用或禁用它们。

代码语言:javascript
复制
<activity-alias
    android:name=".ui.alias.open_location"
    android:targetActivity=".ui.activity.location"
    android:enabled="false">

    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity-alias>

我不希望在一开始就启用它们,以免弄乱用户设备的应用程序屏幕。但是在运行时,用户应该能够启用别名。我通过PackageManager完成此操作

代码语言:javascript
复制
PackageManager pm  = getApplicationContext().getPackageManager();
ComponentName componentName = new ComponentName(context, ".ui.alias.open_location");
pm.setComponentEnabledSetting(componentName,
                              PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
                              PackageManager.DONT_KILL_APP);

这在一开始就像charm一样工作,但当安装了我的应用程序的更新时,别名再次被禁用。如何防止系统通过清单覆盖已启用状态?我不希望用户一开始就使用Launcher,也不希望用户在更新后重新创建所有别名快捷方式。

我想我需要一些类似于PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER的东西,但只适用于已启用状态。

谢谢!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33519799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档