[英]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使用意圖安裝或卸載軟件包,此問題應提供更完整的信息:
第三方應用程序無法靜默卸載應用程序!
您需要成為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.