18

Tôi đang học lập trình Android và tôi đã hiểu khái niệm về quyền tùy chỉnh.Vài câu hỏi về quyền tùy chỉnh trong Android

Dựa trên sự hiểu biết của tôi đây là điều khoản tùy chỉnh làm việc như thế nào:

'Base app' có thể bảo vệ một số thành phần của nó (ví dụ, hoạt động và dịch vụ) bằng cách tuyên bố cho phép tùy chỉnh (ví dụ, sử dụng <permission> thẻ trong file manifest) và 'client app' gọi các hoạt động và dịch vụ được bảo vệ bởi quyền tùy chỉnh cần có các quyền cần thiết (ví dụ: sử dụng các thẻ <uses-permission> trong tệp kê khai) để gọi các thành phần đó trong số base app.

Tuy nhiên, tôi có những câu hỏi liên quan đến quyền tùy chỉnh:

  1. Nếu sự cho phép tùy chỉnh được khai báo là nguy hiểm (ví dụ: android:protectionLevel="dangerous"), hiện các client app nhu cầu để có được sự chấp thuận của người sử dụng trong thời gian cài đặt? Nếu vậy, làm cách nào để người dùng biết về các quyền tùy chỉnh này vì sẽ không có bất kỳ tài liệu nào về quyền tùy chỉnh.
  2. Trong thời gian cài đặt, cách client app biết rằng base app đã được cài đặt trong điện thoại của người dùng? Có anyway cho client app để biết thông tin này?
  3. Sau khi cài đặt client app, điều gì sẽ xảy ra nếu người dùng quyết định xóa base app? Trong trường hợp này, nếu người dùng cố gắng sử dụng client app nó có gây ra bất kỳ ngoại lệ bảo mật nào không?

Tôi không biết liệu những câu hỏi này có hợp lý hay không nhưng nó khiến tôi tự hỏi các quyền tùy chỉnh thực sự hoạt động như thế nào trong kịch bản thực.

Cảm ơn bạn.

+0

Tham khảo link này http://stackoverflow.com/questions/8816623/how-to-use-custom-permissions-in-android này sẽ giúp – Manu

Trả lời

1

Câu trả lời cho câu hỏi của bạn được đưa ra dưới đây. Nhưng bạn có thể tham khảo http://developer.android.com/guide/topics/manifest/permission-element.html để hiểu rõ hơn về quyền của Android.

1.Yes, nếu bạn khai báo

android:protectionLevel="dangerous" 

sau đó hệ thống có thể không tự động cấp nó vào yêu cầu application.Any quyền nguy hiểm theo yêu cầu của một ứng dụng có thể được hiển thị cho người sử dụng và yêu cầu xác nhận trước khi tiếp tục.

Ứng dụng cơ sở quy định cho phép tùy chỉnh có nghĩa vụ phải cung cấp một mô tả qua

android:description="string resource" 

Dưới đây là định nghĩa một phép ví dụ. Hy vọng nó là tự giải thích.

<permission android:description="string resource" 
android:icon="drawable resource" 
android:label="string resource" 
android:name="string" 
android:permissionGroup="string" 
android:protectionLevel=["normal" | "dangerous" | 
"signature" | "signatureOrSystem"] /> 

2. Theo như tôi biết, không có cách nào để ứng dụng khách xem sự hiện diện của ứng dụng cơ sở tại thời điểm cài đặt. Nhưng có thể khi ứng dụng khách được bắt đầu. Dù sao, quyền được cấp bởi hệ thống Android dựa trên tệp android.xml của bạn. Vì vậy, ứng dụng khách hàng không phải bận tâm về ứng dụng cơ sở tại thời điểm cài đặt.

3.Ứng dụng cơ sở có thể bị xóa ngay cả khi ứng dụng khách vẫn được cài đặt. Nó sẽ không thông qua bất kỳ thông báo lỗi hoặc ngoại lệ bảo mật ở bất kỳ giai đoạn nào.Nhưng khi bạn cố gắng chạy lại ứng dụng khách, bạn có thể nhận được ngoại lệ 'Không tìm thấy hoạt động' tại thời điểm bạn cố gắng gọi hoạt động ứng dụng cơ sở từ ứng dụng khách.

+4

Hai điểm quan trọng: Thứ nhất, sự chấp nhận của người dùng là tất cả hoặc không có gì, hoặc cài đặt ứng dụng với các cảnh báo cho phép hoặc không cài đặt nó. Thứ hai, nếu ứng dụng cấp không được cài đặt trước ứng dụng đang sử dụng, các quyền sẽ không được cấp và chức năng phụ thuộc vào chúng sẽ không hoạt động. –