我正在尝试按照此方法Trying to access the LauncherProvider访问运行Lollipop 5.1.1的Samsung设备上的Launcher数据库:基本上,轮询PackageManager以获取已安装的软件包,然后遍历提供程序以查找具有READ_SETTINGS和WRITE_SETTINGS权限的提供程序。在我的情况下, findLauncherProviderAuthority 返回
com.sec.android.app.launcher.settings
但是当我使用它构建getContentResolver URI并打开游标来访问Launcher数据库收藏夹表时
android.database.sqlite.SQLiteException:没有这样的列;
从投影字符串中删除违规列只会导致具有不同列名的类似错误。 接下来,我在手机上查了一下,在TouchWize Home的设置 - >应用管理器中找到了与权限相关的条目
com.sec.android.provider.badge.permission.READ 和 com.sec.android.provider.badge.permission.WRITE 。 确定这与Samsung Launcher有关,我尝试使用这些权限,但现在游标值为空。
非常感谢任何提示和建议
答案 0 :(得分:2)
我会尝试将空投影传递给内容提供程序,当您获得光标时,迭代列并获取名称。
clip-path
然后你可以看到数据库有哪些列。也许它们有列前缀。