想要在联系人中设置一个密码设置,当开启的时候进入联系人就要求输入密码,密码也可以停用。
类似系统设置中的屏幕密码锁定。
我移植了屏幕密码锁定的密码,运行提示没有BIND_DEVICE_ADMIN权限。
有没有人可以帮忙 详细说明一下,怎么弄,这段代码可不可以直接移植,还是有哪些地方需要注意
刚研究android 不是很懂,哪位大神可以告诉我怎么弄啊。也可以给出你自己的加密解决方案啊,谢谢。

解决方案 »

  1.   

    Android是通过ContentProvider封装了数据库的,所以你没办法加密系统的数据库。不过你你可以自己建立数据库把数据都存在自己的库中……就可以加密了
      

  2.   


    这个应用层做不到,你无法监听数据库的读取,虽然可以通过Observer监视到对数据库的修改,但是无法阻止修改的动作。高级一点的手段大概可以,比如进程注入,但是这不是应用层的范围了
      

  3.   

    加密不难啊。SQLite,SharedPreference都可以保存
      

  4.   


    问题的关键在于要对数据库的访问加密,保存这些都能实现,还有就是BIND_DEVICE_ADMIN的权限问题(这个可能要重写系统的一些方法)
    要对联系人数据库加密,每次访问都要求密码,比如从发短信界面选择联系人。
    要对数据库操作,应该去底层修改ContactsProvider是不是啊,我是这样理解的。
    我是在公司做,可以对ContactsProvider直接修改,不需要再建数据库。
    go短信那个加密不知道是不是自己建了个数据库,反正从机器上拉下来的数据库和机器本身存储短信的数据库是一样的,表名数据什么的都一样,就像是一个复制过来的
      

  5.   

    想知道,如果在ContactsProvider中修改,可不可以在数据库的打开动作中进行修改。