簡體   English   中英

是否可以通過編程方式在Android中卸載軟件包

[英]Is it possible to programmatically uninstall a package in Android

軟件包可以自行卸載嗎? 如果一個軟件包共享相同的userId和簽名,是否可以卸載另一個軟件包?

嘿,可能為時已晚,但這對我有用。

Uri packageURI = Uri.parse("package:"+"your.packagename.here");
    Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
    startActivity(uninstallIntent);

第三方應用程序無法以編程方式安裝或卸載任何其他軟件包,這將對Android構成安全隱患。 但是,第三方應用程序可以要求 Android OS使用意圖安裝或卸載軟件包,此問題應提供更完整的信息:

以編程方式安裝/卸載APK(PackageManager與Intents)

第三方應用程序無法靜默卸載應用程序!

您需要成為System App以獲得DELETE_PACKAGES權限,否則您需要顯示卸載彈出窗口 (用戶確認)

或者,您可以獲取“可訪問性”權限,然后顯示“可訪問性覆蓋”,可以告訴您的服務單擊“ 卸載”按鈕! 但這將侵犯隱私。

在Kotlin中,使用API​​ 14+,您可以調用以下代碼:

startActivity(Intent(Intent.ACTION_UNINSTALL_PACKAGE).apply {
     data = Uri.parse("package:$packageName")
})

或使用Android KTX:

startActivity(Intent(Intent.ACTION_UNINSTALL_PACKAGE).apply {
     data = "package:$packageName".toUri()
})

它將顯示您的應用程序的卸載提示。 如果需要,可以將packageName更改為另一個應用程序的任何軟件包名稱。

暫無
暫無

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

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