9

BỐI CẢNHỨng dụng của Nhà cung cấp nội dung chỉ định quyền mà ứng dụng khách cần để truy cập dữ liệu của nhà cung cấp như thế nào?

Tôi đọc this tutorial on Android Content Providers. Tôi hiểu từ hướng dẫn này,

Để các ứng dụng khác truy cập dữ liệu của Nhà cung cấp nội dung, ứng dụng nhà cung cấp phải chỉ định các quyền mà ứng dụng khách cần phải truy cập dữ liệu của nhà cung cấp.

Ứng dụng của khách hàng chỉ định các quyền họ yêu cầu trong tệp kê khai của họ bằng cách sử dụng phần tử <uses-permission>, ví dụ:

<uses-permission android:name="android.permission.READ_USER_DICTIONARY" > <!-- In the client app's manifest --> 

Sau đó, trình quản lý APK yêu cầu người dùng đồng ý về các quyền này (trong ứng dụng khách) khi người dùng đang cài đặt ứng dụng khách.

HỎI

Câu hỏi của tôi là làm thế nào để cung cấp dịch vụ (ứng dụng) xác định các quyền mà ứng dụng client khác phải được cấp để cho họ để truy cập vào dữ liệu của nhà cung cấp?

Từ developer guide,

Để tìm tên chính xác của phép truy cập đọc cho các nhà cung cấp bạn đang sử dụng, cũng như như tên cho quyền truy cập khác sử dụng bởi nhà cung cấp, xem trong tài liệu của nhà cung cấp.

Vì vậy, là con đường để xác định những điều khoản trong ứng dụng cung cấp - trong tài liệu hướng dẫn các nhà cung cấp của? Nếu vậy, tài liệu đó được tìm thấy ở đâu? Tôi có thể tìm tài liệu đó cho nhà cung cấp SearchableDictionary ở đâu (được sử dụng làm ví dụ trong hướng dẫn) và nếu tôi viết Nhà cung cấp nội dung trong ứng dụng của mình, tôi sẽ cung cấp tài liệu đó ở đâu?

Trả lời

13

Xác định Permission trong AndroidManifest.xml cung cấp ứng dụng của

<permission 
    android:name="com.myapp.PERMISSION"/> 

Xác định nhà cung cấp trong AndroidManifest.xml cung cấp ứng dụng của

<provider 
     android:name=".MyProvider" 
     android:authorities="com.myapp.MyProvider.AUTHORITY" 
     android:enabled="true" 
     android:exported="true" 
     android:multiprocess="true" 
     android:readPermission="com.myapp.PERMISSION" /> 

AndroidManifest.xml của khách hàng nên có thẻ sử dụng-phép

<uses-permission android:name="com.myapp.PERMISSION"/> 

Sau đó, khách hàng có thể truy cập vào nhà cung cấp

Cursor cursor = getContentResolver().query(
Uri.parse("content://com.myapp.MyProvider.AUTHORITY/xxx"),null, null, null, null); 
+0

Cảm ơn bạn rất nhiều vì đã có câu trả lời rất rõ ràng. Nhưng tôi vẫn còn hơi bối rối về báo giá tôi trích dẫn từ hướng dẫn của nhà phát triển về * tài liệu của nhà cung cấp *: họ đang nói về tài liệu gì? Bạn còn ý kiến ​​nào không? – Solace

+0

Nhưng bây giờ tôi rõ ràng rằng tôi có thể xem biểu hiện của ứng dụng nhà cung cấp để biết tên của quyền. Cảm ơn. – Solace

+0

@Solace tôi đã có chính xác vấn đề của bạn, bạn có thể cho tôi biết nơi bạn đã tìm thấy trong ví dụ này tập tin biểu hiện của UserDictionary ??? –

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