Android卸载三方应用

135 阅读1分钟

有个扫描病毒的需求,扫描已安装的程序哪些是病毒,然后提醒用户卸载。

在 Android 中使用 Intent.ACTION_DELETE 是一种触发卸载应用程序的方法。通常情况下,这是通过用户界面引导用户进行卸载操作,而不是程序直接卸载应用程序。这是因为卸载应用程序是一项敏感的操作,Android 系统要求用户明确同意才能进行。

val intent = Intent(Intent.ACTION_DELETE)
intent.data = Uri.parse("package:$packageName")
startActivity(intent)

在这段代码中,将 packageName 替换为您希望卸载的应用的包名。这会启动一个系统的卸载界面,让用户确认卸载操作。这里有个小小的卡点,记录下来,那就是遇到了在高版本上点击无反应,页面闪一下不跳转,也没有抛出异常。低版本上直接弹出卸载弹框点击卸载即可。

解决办法:

权限问题:您的应用可能没有足够的权限执行卸载操作。卸载其他应用需要 REQUEST_DELETE_PACKAGES 权限,该权限只能由系统应用或设备管理器应用使用。普通应用无法直接获得此权限,因此不能通过 Intent.ACTION_DELETE 卸载其他应用。

清单文件中声明卸载权限即可,这个权限不需要动态申请让用户同意。

<manifest xmlns:android="http://schemas.android.com/apk/res/android">

    <uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES"/>
    
    <!-- 其他应用配置 -->
    
</manifest>