访问Lollipop

时间:2016-02-10 02:29:38

标签: sqlite android-sqlite android-5.0-lollipop android-contentprovider android-launcher

我正在尝试按照此方法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有关,我尝试使用这些权限,但现在游标值为空。

非常感谢任何提示和建议

1 个答案:

答案 0 :(得分:2)

我会尝试将空投影传递给内容提供程序,当您获得光标时,迭代列并获取名称。

clip-path

然后你可以看到数据库有哪些列。也许它们有列前缀。