我在contact创建表时新增了一列,但是后面update修改时却不能修改成功,没有任何错误提示,读写权限也都加上了,请问各位谁明白是怎么回事。

解决方案 »

  1.   

    logcat里没有什么黄色的抛出的异常信息啊?
    要不贴出来修改的代码看看吧
      

  2.   

    一列是加成功了,但是update那一列返回值也是正确的,但数据改不了,如果update其他列是可以改的。我用Platform证书签名也没用,看起来像权限问题,但又不像,谁有空帮试试。
      

  3.   

    晕,没事在系统数据库中创建表,哈哈,你修改时,返回什么啊,看返回值吧。使用原始sql执行好了,别用content provider封装的,试试
      

  4.   

    发现一个问题 在文档中 android.provider -> ContactsContract.Contacts
    里提到对不同的Columns,分别是read-only or read/write,请问谁知道数据库如何能做到控制每个Columns的读写,一般只看到对整个数据库的读写控制,难道是很底层的操作?
      

  5.   

    sdk里提供的api,会有你说的这样那样的权限问题,实际上都是操作联系人的数据库而已,如果你有root权限,可以自行去修改系统的联系人数据库文件。不用考虑权限
      

  6.   


    我仔细看过权限管理的文档,没有提到对数据库详细到Columns的安全机制,说明这是数据库内部的管理,而且我的代码是加在联系人里的,也不存在多个进程间访问的问题。对每个应用程序来说,都不可能是root的,因为虚拟机在安装程序管理时,权限已限定为普通的User,既不是System也不是Root。谁知道如何控制数据库字段读写的来说下。
      

  7.   


    这种例子很多啊!在CONTENT PROVIDER这样的章节里面。找本书看看,比如android应用开发揭秘(全).pdf
      

  8.   


    CONTENT PROVIDER里你见过如何控制Columns的读写权限吗?请指出。要看书的恐怕是你不是我-_-
      

  9.   


    你UPDATE不成功不一定就是读写权限的问题。
      

  10.   


    UPDATE返回是成功的,请仔细看我前面的问题