Android sharedUserId 和系统权限
sharedUserId
给不同的应用使用同一个 sharedUserId 可以运行在这几个应用间互相访问数据(数据库,SharedPreferences,文件)。
sharedUserId 一旦使用后,不可以再更改。
使用限制:
两个应用ShareUserId相同,包名相同或不同,打包时签名文件必须相同否则,在如下情况下,第二个安装包在安装时会失败,错误为[INSTALL_FAILED_SHARED_USER_INCOMPATIBLE]:
1.包名相同,签名相同,ShareUserId不同
2.包名相同或不同,ShareUserId相同,签名不同
系统权限
在开发一个应用的过程中,遇到了需要改变应用 Locale 的情况。这时候需要一个系统权限:
android.permission.CHANGE_CONFIGURATION
但是使用这个系统权限有一个条件,就是使用系统的 sharedUserId
android:sharedUserId="android.uid.system"
还没有完,想使用系统的 sharedUserId 必须使用系统签名。由于我使用的是公司个性化的第三方ROM,所以我有系统签名可以直接使用。但是使用官方系统的就需要特殊的签名方式,具体可以在网上查到。比如这个链接。
移动开发者