Content Provider的应用程序如何指定客户端应用程序访问提供者数据所需的权限?

背景

我正在阅读Android内容提供者的教程 。 我从这个教程中了解到,

为了使其他应用程序访问内容提供者的数据,提供者应用程序必须指定客户端应用程序访问其提供者数据所需的权限

客户端应用程序使用<uses-permission>元素在清单文件中指定他们需要<uses-permission> ,例如

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

然后,当用户安装客户端应用程序时,APKpipe理员要求用户同意这些权限(在客户端应用程序中)。

我的问题是,提供程序(应用程序)如何指定其他客户端应用程序必须授予的权限才能访问提供程序的数据?

从开发者指南 ,

要查找您正在使用的提供程序的读取访问权限的确切名称以及提供程序使用的其他访问权限的名称 ,请查看提供程序的文档。

那么在提供者的文档中是如何在提供者应用程序中指定这些权限? 如果是这样,那么文档在哪里find? 我在哪里可以findSearchableDictionary提供者的文档(在本教程中用作示例),如果我在我的应用程序中编写Content Provider,我应该在哪里提供该文档?

Solutions Collecting From Web of "Content Provider的应用程序如何指定客户端应用程序访问提供者数据所需的权限?"

在提供者应用程序的AndroidManifest.xml中定义权限

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

在提供者应用程序的AndroidManifest.xml中定义提供者

 <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应该有use-permission标签

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

然后客户端可以访问提供者

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