YET*_*ETI 6 database sqlite android launcher
我想从启动器db获取数据.
final String AUTHORITY = "com.android.launcher2.settings";
final Uri CONTENT_URI = Uri.parse("content://" +
AUTHORITY + "/favorites?notify=true");
Cursor c = contentResolver.query(uri, columns, null, null,
null);
Run Code Online (Sandbox Code Playgroud)
和
<uses-permission
android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
<uses-permission
android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/>
<uses-permission
android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission
android:name="com.android.launcher.permission.WRITE_SETTINGS" />
Run Code Online (Sandbox Code Playgroud)
但据说在logcat中:
Failed to find provider info for com.android.launcher2.settings
Run Code Online (Sandbox Code Playgroud)
小智 8
启动器是手机制造商责任下的应用程序.然后,管理局并非总是如此"com.android.launcher2.settings".手机制造商可能会重写自己的手机."com.android.twlauncher"根据Java包,它可以是或其他任何东西.
你需要通过搜索声明读/写权限的供应商检索有权机关"com.android.launcher.permission.READ_SETTINGS"或"com.android.launcher.permission.WRITE_SETTINGS".
这是一个示例代码:
static String getAuthorityFromPermission(Context context, String permission){
if (permission == null) return null;
List<PackageInfo> packs = context.getPackageManager().getInstalledPackages(PackageManager.GET_PROVIDERS);
if (packs != null) {
for (PackageInfo pack : packs) {
ProviderInfo[] providers = pack.providers;
if (providers != null) {
for (ProviderInfo provider : providers) {
if (permission.equals(provider.readPermission)) return provider.authority;
if (permission.equals(provider.writePermission)) return provider.authority;
}
}
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
通常,ContentProvider保留了DB结构,您可以使用相同的查询.
| 归档时间: |
|
| 查看次数: |
5141 次 |
| 最近记录: |