【问题标题】:How do I complete the actual uninstall/removal of my android app using an uninstall activity?如何使用卸载活动完成我的 android 应用程序的实际卸载/删除?
【发布时间】:2012-06-15 15:34:45
【问题描述】:

我添加了一个带有意图过滤器的活动来拦截我的应用程序的卸载,以便在用户卸载我的应用程序时添加一些额外的处理/清理。我的活动被调用得很好,但我似乎无法完成从设备中删除包的过程。

<activity
        android:name=".Uninstall"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.DELETE" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="package"  />
        </intent-filter>
    </activity>

当我使用包管理器尝试完成卸载时,它只会弹出相同的选择器对话框。

Intent intent = new Intent(Intent.ACTION_DELETE, Uri.fromParts("package", Uninstall.this.getPackageName(), null));
startActivity(intent);

如果我为我的应用提供替代卸载活动,我如何完成从设备上实际卸载 apk?

谢谢。

【问题讨论】:

标签: android package uninstallation


【解决方案1】:

您应该查看参考文档以了解您的意图。意图ACTION_DELETE 与从容器中删除项目有关,而不是与应用程序/包有关。处理删除应用程序/包的意图是ACTION_PACKAGE_REMOVED,但正如文档所述:

现有应用程序包已从设备中删除。数据包含包的名称。正在(卸载)安装的软件包没有收到此Intent

因此,对您的问题的简短回答是无法完成。如果您按部就班,则无需在卸载时执行其他任务。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-10-22
  • 1970-01-01
  • 2012-02-28
  • 2017-04-21
  • 1970-01-01
  • 1970-01-01
  • 2012-03-02
  • 2012-04-30
相关资源
最近更新 更多