今天继续讲android的ContentProvider,讲自己设计ContentProvider的权限控制问题。根据权限的作用域,可分为四种权限,今天讲前两种,明天讲后两种。
以下是android developer官方讲解:
实现权限
即使底层数据为私有数据,所有应用仍可从您的提供程序读取数据或向其写入数据,因为在默认情况下,您的提供程序未设置权限。 要想改变这种情况,请使用属性或 <provider> 元素的子元素在您的清单文件中为您的提供程序设置权限。 您可以设置适用于整个提供程序、特定表甚至特定记录的权限,或者设置同时适用于这三者的权限。
您可以通过清单文件中的一个或多个 <permission> 元素为您的提供程序定义权限。要使权限对您的提供程序具有唯一性,请为 android:name 属性使用 Java 风格作用域。 例如,将读取权限命名为 com.example.app.provider.permission.READ_PROVIDER。
以下列表描述了提供程序权限的作用域,从适用于整个提供程序的权限开始,然后逐渐细化。 更细化的权限优先于作用域较大的权限:
统一读写提供程序级别权限
一个同时控制对整个提供程序读取和写入访问的权限,通过 <provider> 元素的 android:permission 属性指定。
单独的读取和写入提供程序级别权限
针对整个提供程序的读取权限和写入权限。您可以通过 <provider> 元素的 android:readPermission 属性和 android:writePermission 属性 指定它们。它们优先于 android:permission 所需的权限。