Android通过sharedUserId实现不同APK数据共享

来源:互联网 发布:淘宝卖家骂人怎么处罚 编辑:程序博客网 时间:2024/05/16 12:23


         Android配置文件AndroidManifest.xml根目录下有个android:sharedUserId属性,这个属性可以用来实现不同的apk之间数据共享,这里先谈谈用法,再给出一个简单的demo。

         

       通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中.所以默认就是 

可以互相访问任意数据. 也可以配置成运行成不同的进程, 同时可以访问其他APK的数据目录下的 
数据库和文件.就像访问本程序的数据一样. 
 

      具体实现就是 :

       1.     A和B设置成同一个User ID: 

    *在2个APK的AndroidManifest.xml 配置User ID: 
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    android:sharedUserId="com.fx.qq"> 
   在两个不同的apk中都用相同的android:sharedUserId="com.fx.qq"。

       2.  这个设定好之后, APK B就可以像打开本地数据库那样 打开APK A中的数据库了. 
APK A把登陆信息存放在A的数据目录下面. APK B每次启动的时候读取APK A下面的数据库 
判断是否已经登陆: 
APK B中的代码: 
            friendContext = this.createPackageContext( 
                    "com.android.demo.a1", 
                    Context.CONTEXT_IGNORE_SECURITY); 

通过A的package name 就可以得到A的 packagecontext 。通过这个context就可以直接打开数据库 



  下面是一个例子http://download.csdn.net/detail/langziduxiao/4927394.

  例子解释:QQ和QQZone两个APK,再qq中注册账号密码,在QQZone中打开QQ的数据库,读取最新的账号密码显示出来。使用时打开QQ应用,在编辑框输入账号密码,点击checkou注册,然后打开QQZone应用,点击button就会显示最新注册账号密码

原创粉丝点击