Per-user settings
Each user has its own Settings.System.* and Settings.Secure.* namespace now. In addition, this CL introduces the new Settings.Global.* namespace, which contains a number of previously-elsewhere named settings entities; these Global.* entities are common to all users. Because these elements have been moved from their prior existence in the other namespaces, attempts to access them under their old names and namespaces are detected and redirected (with appropriate compile-time and logging messages) to their new homes. The new Global.* namespace can only be written by system-level code, just like the existing Secure.* namespace. If an app attempts to write a key that was previously in the System.* namespace but has been moved to the Global.* namespace, then a warning is logged and no write is performed; the action is a no-op. (The app is explicitly not crashed, to avoid breaking well-behaved apps that can't know any better.) There is also now a hidden API for getting/setting settings entities associated with a user other than the caller's. Reading/writing data for a user other than yourself requires the signature-level INTERACT_ACROSS_USERS_FULL permission. Manipulating data for a different user cannot be done via the ContentProvider query() / insert() APIs; you must use the Settings.get/put APIs for that degree of control. In general, use of the get/set API is *strongly* preferred over query-type access to Settings. Bug 6985398 Change-Id: Ibee54ddff99fb847c8c2479c23b50f1e7524d724
Loading
Please register or sign in to comment