2009-08-03 23 views
24

Tôi muốn yêu cầu người dùng nhập mật khẩu trước khi được phép gỡ cài đặt/xóa ứng dụng của tôi. Làm thế nào tôi có thể thực hiện chức năng này?Yêu cầu mật khẩu để gỡ cài đặt/xóa ứng dụng

+1

bạn có thể cung cấp thêm một số chi tiết hay không. OS, ngôn ngữ, v.v. –

+0

Trong android, khi cài đặt một ứng dụng, nó sẽ hỏi tên người dùng và mật khẩu. và khi gỡ cài đặt, người dùng ứng dụng phải nhập đúng tên người dùng và mật khẩu. – arams

+17

Đó không phải là một chút khắc nghiệt? Là một khách hàng, nếu tôi từng phải nhập mật khẩu để gỡ cài đặt một phần mềm, tôi sẽ rất p * ssed off! Tôi muốn tiết kiệm cho mình những bận tâm và không thực hiện nó. – Steg

Trả lời

1

Đây là một vấn đề khó khăn. Tôi có thể nghĩ ra ít nhất một trường hợp sử dụng không xấu cho nó.

ví dụ: Ứng dụng Khôi phục điện thoại bị đánh cắp - bạn muốn ngăn chặn các hoạt động của ứng dụng này.

Trong trường hợp này, tôi có thể nghĩ đến hai giả định hợp lý đó sẽ ngăn cản tôi thực hiện những gì bạn đang tìm kiếm:

  • kẻ trộm không hề biết về ứng dụng của bạn, vì vậy sẽ không cố gắng để gỡ bỏ nó.
  • kẻ trộm nhận thức được ứng dụng của bạn và tắt nó đi cho đến khi anh ta có thể lấy nó vào hộp sắt * để cài đặt lại hệ điều hành.

* Để không được khởi động: iron box sẽ ngăn thiết bị gửi hoặc nhận tín hiệu điện từ.

Tất nhiên, số tiền trả lời này là You Ain't Going To Need It, mặc dù tôi nghi ngờ bạn đã nghĩ điều này thông qua.

+2

Một ứng dụng doanh nghiệp sẽ là một sử dụng không độc ác – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

13

Bạn có thể làm điều này bằng cách:

  • Lần đầu tiên ứng dụng của bạn được cài đặt, cài đặt một ứng dụng/gói riêng biệt ("watcher").
  • Các lớp chỉ "quan sát" chứa là một BroadcastReceiver rằng lắng nghe cho ACTION_PACKAGE_REMOVED
  • Thêm một BroadcastReceiver để ứng dụng của bạn mà còn lắng nghe cho ACTION_PACKAGE_REMOVED
  • Khi một ý định được phát sóng đến một trong những người nhận của bạn, kiểm tra xem các thành phần khác vẫn được cài đặt. Nếu không phải là (người dùng vừa gỡ cài đặt nó), hãy nhắc mật khẩu - nếu sai, hãy cài đặt lại thành phần khác. Nếu đúng, hãy tự gỡ cài đặt.
+9

và, chính xác những gì ngăn cản người dùng từ lần đầu tiên gỡ cài đặt này watcher? – kellogs

+6

Một wathcer lol;) – nithinreddy

+1

Câu trả lời của bạn rất đơn giản và tuyệt vời. Bạn có thể giúp tôi với phần cài đặt lại không? Làm thế nào nó có thể được thực hiện? – keybee

4

Bạn có thể thực hiện đăng nhập và nhận thông tin về hoạt động bắt đầu. Bạn sẽ thấy rằng trước khi hoạt động gỡ cài đặt được hiển thị, có một tin nhắn văn bản như: Bắt đầu hoạt động: Intent {act = android.intent.action.DELETE dat = package: com.comodo.pimsecure cmp = com. android.packageinstaller/.UninstallerActivity} thì bạn có thể bật hoạt động yêu cầu mật khẩu ngay bây giờ.

+1

Đó là một lựa chọn rất tốt để được thực hiện ... nhưng bạn có thể giúp với mã nhỏ hoặc một số loại trợ giúp xây dựng này ... Ứng dụng của tôi là quản trị viên thiết bị, bây giờ tôi muốn hiển thị một trang mật khẩu của ứng dụng của tôi trước khi cho phép xóa. TÔI CẦN GIÚP ĐỂ KIỂM TRA HOẠT ĐỘNG UNINSTALL ỨNG DỤNG –

+1

logcat -d -n 5 ActivityManager: I *: S và tất cả nhật ký về activityManager sẽ hiển thị. sau đó bạn có thể đọc nhật ký để tìm từ khóa “android.intent.action.DELETE”, nếu bạn phát hiện ra điều đó, thì bước 2: tìm tên gói của bạn trong cùng một bản ghi nhật ký, nếu bạn tìm thấy tên gói, thì nhật ký có nghĩa là thiết bị đã bật hoạt động để gỡ cài đặt ứng dụng của bạn và bạn có thể bật hoạt động mật khẩu ngay bây giờ. – Mikonos

1

Có thể. bạn có thể làm điều đó với DeviceAdminReceiver api. (Tôi không có cách nào)

Các vấn đề liên quan