如果我有這樣的需求,比如QQ和QQ音樂都是騰訊出品的產品,此時我已經登錄QQ,那麼再登錄QQ音樂的時候必然是不會再次出現登錄界面的,因爲此時的數據已經共享了,QQ音樂可以獲得QQ的數據,所以檢測到的時候,就不會再起登錄了。
在Android中是如何實現的?
首先在我們的AndroidMainifest中,第一級是mainifest,第二級是application,第三級是service,activity,contentprovider,braoadcastreceiver註冊信息。
在第一級中有一個 Shared User id
只要不同的應用程序的 Shared User id 設爲一樣的,那麼就可以使用不同的應用程序的數據共享。
可以互相訪問任意數據. 也可以配置成運行成不同的進程, 同時可以訪問其他APK的數據目錄下的數據庫和文件.就像訪問本程序的數據一樣。
其實大致可以理解爲,擁有同樣的userid,相當於或得到最高權限,可以任意訪問。
//A程序
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yupeibiao.mainifest"
//不同app設置同樣的id共享數據
android:sharedUserId="com.yupeibiao.comeon">
//B程序
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.linmeini.mainifest"
//不同app設置同樣的id共享數據
android:sharedUserId="com.yupeibiao.comeon">