2013-07-26 37 views
5

Tôi nghe nói rằng OS 4.3 có tính năng ẩn để vô hiệu hóa một số quyền hạn bằng cách đóng gói lại APK. Khi chúng tôi phát hành ứng dụng, chúng tôi thêm các quyền cần thiết và làm cho ứng dụng hoạt động. Nhưng tính năng đó có thể vô hiệu hóa quyền. Tôi biết một số ứng dụng đã làm điều này mặc dù nó là một hack và tôi không cần phải quan tâm. Nhưng với OS 4.3, người dùng có thể dễ dàng thực hiện điều này.Điều gì sẽ xảy ra khi quyền được tắt với tính năng mới của OS 4.3?

Bây giờ câu hỏi của tôi là, khi quyền được tắt, API tương ứng có ném ngoại lệ không? (Tôi đoán vậy.) Nếu điều này là đúng, tôi nên thêm try-catch cho một số hoạt động nếu không người dùng mới làm quen có thể kết thúc nghĩ rằng ứng dụng của tôi được thiết kế kém. Hoặc, tôi sẽ thêm một số mã để kiểm tra các điều khoản có để ứng dụng của tôi hoạt động và nếu không, tôi sẽ hiển thị một số thông báo thô lỗ, không lịch sự để nói không làm điều này và thoát ứng dụng.

(Ai đó có thể đóng câu hỏi này nói đây không phải là một câu hỏi đúng.)

+0

Ngoài việc thêm 'sử dụng tính năng' và đặt' android: required = "false" 'khi cần, tôi không thể thấy từ Android 4.3 doco cách khắc phục sự cố này. Hãy nhớ rằng bạn chỉ mới bắt đầu thử nghiệm với API 18 (Android 4.3). – ChuongPham

Trả lời

5

Tôi nghe nói rằng OS 4.3 đã ẩn tính năng để vô hiệu hóa một số điều khoản w/o đóng gói apk.

Thuật ngữ làm việc cho điều này là "App Ops", dựa trên tiêu đề hoạt động cho phép người dùng kiểm soát các hoạt động này.

Bây giờ câu hỏi của tôi là, khi quyền được tắt, API tương ứng có ném ngoại lệ không?

Điều đó sẽ phụ thuộc vào hoạt động cụ thể đã bị chặn. Ví dụ: cố gắng open() a Camera, khi ứng dụng đã bị chặn bởi App Ops, sẽ ném một số RuntimeException. Nhưng truy vấn các liên hệ, khi người dùng chặn trong App Ops, chỉ cần trả về các tập kết quả rỗng.

tôi nên thêm try-catch đối với một số hoạt động người dùng khác mới làm quen có thể sẽ nghĩ đến ứng dụng của tôi được thiết kế kém

lẽ. Nó phụ thuộc vào những gì ứng dụng của bạn có thể bị chặn và hành vi chặn là gì.

Tôi sẽ thêm một số mã để kiểm tra quyền để ứng dụng của tôi hoạt động và nếu không tôi sẽ hiển thị một số thông báo thô lỗ, không lịch sự để nói không làm điều này và thoát ứng dụng.

App Ops không thu hồi quyền. PackageManagercheckPermissions() sẽ vẫn báo cáo rằng bạn giữ quyền, ngay cả khi App Ops chặn một số hoạt động được liên kết với quyền đó.

Hiện tại, tôi biết không có cách nào trực tiếp để xác định xem bạn có bị chặn bởi App Ops hay không.

Tôi đã bắt đầu a FAQ on my blog để cố gắng thu thập thông tin về điều này, cho đến khi các chi tiết chính thức xuất hiện (nếu có).

+0

Cảm ơn bạn đã trả lời. Nhiều người trong chúng ta sẽ bị ảnh hưởng bởi tính năng/ứng dụng mới này. Tôi hy vọng Google sẽ mở ra thông tin và hướng dẫn chúng tôi chuẩn bị cho việc này sớm. – Tomcat

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