簡體   English   中英

如何卸載我自己的Android應用程序而無需用戶干預?

[英]How to uninstall my own Android application without user intervention?

我知道卸載應用程序的唯一方法是發送一個intent( 如此處所述 ),但這會打開一個活動供用戶確認卸載。

我知道沒有其他方法可以在沒有用戶干預的情況下卸載其他應用程序(除非您擁有DELETE_PACKAGES權限,這意味着您是OEM)。

但是,有沒有辦法在沒有用戶干預的情況下卸載我自己的應用程序?

PackageManager有一個名為deletePackage的隱藏函數(可以通過反射調用)。 但它需要android.permission.DELETE_PACKAGES權限。 無論您是否是應用程序的所有者,都必須獲得此許可。 此權限不會授予第三方應用。

所以,基本上,你不能卸載應用程序,即使它是你的。 這實際上是有道理的,因為用戶應該控制諸如安裝和卸載應用之類的關鍵事件。 想象一下,如果用戶剛剛從市場上安裝了應用程序但卻無法找到它(或類似場景),那么用戶會感到沮喪。

您應該使用正確的消息禁用應用程序功能。 這將更加用戶友好。

如果您的應用配置為設備所有者,則可以靜默完成應用安裝和卸載。

設備所有者從Android 5.0開始引入。 從6.0開始添加了靜默安裝功能。

來自andorid來源:

if ((mPm.checkUidPermission(android.Manifest.permission.INSTALL_PACKAGES, installerUid)
        == PackageManager.PERMISSION_GRANTED)
        || (installerUid == Process.ROOT_UID)
        || mIsInstallerDeviceOwner) {
    mPermissionsAccepted = true;
} else {
    mPermissionsAccepted = false;
}

此權限授予root用戶,系統應用程序和設備所有者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM