我添加了一个带有intent过滤器的活动来拦截我的应用程序的卸载,这样我就可以在用户卸载我的应用程序时添加一些额外的处理/清理。我的活动被称为好,但我似乎无法完成从设备中删除包。
<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的实际卸载?
感谢。
答案 0 :(得分:2)
您应该查看意图的参考文档。意图ACTION_DELETE
与从容器中删除项目而不是从应用程序/包中删除项目有关。处理应用程序/包的删除的意图是ACTION_PACKAGE_REMOVED
,但正如文档所述:
现有的应用程序包已从设备中删除。数据包含包的名称。正在(未)安装的软件包不会收到此
Intent
。
所以对你的问题的简短回答是它无法完成。如果按照本书进行游戏,则无需在卸载时执行其他任务。