gpt4 book ai didi

禁用启动器 Activity 后,android 重新安装失败

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:39:07 28 4
gpt4 key购买 nike

我想从应用列表和最近使用的应用列表中删除我的应用。所以我尝试使用以下代码禁用我的主要/启动器 Activity :

ComponentName componentToDisable = new ComponentName(context, MainActivity.class);
context.getPackageManager().setComponentEnabledSetting(componentToDisable,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

这就完成了工作。但现在我尝试重新安装该应用程序,但它没有显示“Activity MainActivity 类不存在”。如果我卸载该应用程序,安装会再次运行。我该如何处理这个问题?非常感谢您的时间和帮助

最佳答案

我发现我必须在重新安装之前启用该 Activity 。这可以通过让广播接收器监听 package_add/remove 事件并在 onReceive 中再次启用 Activity 来完成。

public void onReceive(Context context, Intent intent) {
Log.i("Receiver","got event");
ComponentName componentToDisable = new ComponentName(context,BlockableComponentActivity.class);
context.getPackageManager().setComponentEnabledSetting(componentToDisable,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
}

接收方的 list 摘录:

<receiver android:name="PackageChangeReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<action android:name="android.intent.action.PACKAGE_REPLACED"/>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<data android:scheme="package"/>
</intent-filter>

关于禁用启动器 Activity 后,android 重新安装失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10396651/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com