今天繼續講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 所需的權限。