相关疑难解决方法(0)

检测新安装或更新版本(Android应用程序)

我在Play商店有一个应用程序.我想要求如果用户想要使用应用程序的某个部分,他们必须先邀请朋友才能这样做.但我只想对应用程序的新安装施加此限制(对于在限制之前安装了应用程序的用户公平).很抱歉这个长篇介绍,我的问题是如何确定当前设备是否已更新应用程序或是否是新安装?

android

27
推荐指数
4
解决办法
2万
查看次数

在应用更新时删除了活动别名

我已经实现了两个activity-alias用户应该能够在运行时启用或禁用的功能.

<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>
Run Code Online (Sandbox Code Playgroud)

我不希望在开始时启用它们,以免弄乱用户设备的应用程序屏幕.但在运行时,用户应该能够启用别名.我这样做是通过PackageManager:

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);
Run Code Online (Sandbox Code Playgroud)

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

我想我需要类似的东西PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER,但仅限于启用状态.

谢谢!

android android-manifest android-activity android-activity-alias

18
推荐指数
1
解决办法
778
查看次数