2009-08-03 214 views
24

我想要求用戶在允許卸載/刪除我的應用程序之前先輸入密碼。我怎樣才能實現這個功能?要求輸入密碼才能卸載/刪除應用程序

+1

你可以給一些更多的細節。操作系統,語言等 – 2009-08-03 10:16:52

+0

在android, 安裝應用程序時,它應該詢問用戶名和密碼。 並且在卸載應用程序用戶時應輸入正確的用戶名和密碼。 – arams 2009-08-03 10:24:24

+17

這是不是有點苛刻?作爲一名客戶,如果我不得不輸入密碼來卸載一個軟件,我會非常失望!我會救自己的麻煩,而不是實施它。 – Steg 2009-08-03 10:29:26

回答

1

這是一個難題。我至少可以想到一個非邪惡的用例。

例如被盜電話恢復應用程序 - 你希望阻止你的手機卸載應用程序。

在這種情況下,我能想到兩個懂事的假設這會阻止我實現你在找什麼:

  • 小偷不知道你的應用程序,所以不會嘗試卸載它。
  • 小偷知道你的應用程序,並關閉它,直到他可以將它拿到鐵盒*重新安裝操作系統。

*對於外行人:iron box會阻止設備發送或接收電磁信號。

當然,這個答案相當於You Ain't Going To Need It,雖然我懷疑你已經考慮過了。

13

您可以通過這樣做:

  • 安裝程序的第一個時間,安裝一個單獨的應用程序/包(「守望者」)。
  • 唯一的類「守望者」中包含的是偵聽ACTION_PACKAGE_REMOVED
  • 添加一個BroadcastReceiver到您的應用程序,還監聽ACTION_PACKAGE_REMOVED
  • 當意圖被廣播到您的接收器一個,檢查其他部件的廣播接收器仍然安裝。如果不是(用戶只是卸載它),提示輸入密碼 - 如果錯誤,重新安裝其他組件。如果它是正確的,請卸載自己。
4

您可以執行logcat並獲取啓動活動意向信息。 您會發現,在顯示卸載活動之前,有 的文本消息,例如: 開始活動:意圖{act = android.intent.action.DELETE dat = package:com.comodo.pimsecure cmp = com。 android.packageinstaller/.UninstallerActivity} 然後你可以彈出一個活動詢問密碼了。

1

這是可能的。你可以用DeviceAdminReceiver api來完成。 (我不知道如何)