Что такое sharedUserId в Android и как оно используется? - PullRequest
57 голосов
/ 20 марта 2012

Я запутался в sharedUserID. Что такое использование sharedUserId? Как использовать? Где использовать в Android?

Ответы [ 2 ]

34 голосов
/ 20 марта 2012

SharedUserId используется для обмена данными, процессами и т. Д. Между двумя или более приложениями. Это определяется в AndroidManifest.xml как,

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:sharedUserId="android.uid.shared"
    android:sharedUserLabel="@string/sharedUserLabel"
    ...>

и определите общий параметр в Android.mk для этого приложения, например

LOCAL_CERTIFICATE := shared

Надеюсь, это полезно для вас.

33 голосов
/ 20 марта 2012

По умолчанию Android назначает приложению идентификатор пользователя. Это уникальный идентификатор вашего приложения и означает, что никто, кроме пользователя с этим идентификатором, не сможет получить доступ к ресурсам вашего приложения. Вы не можете получить доступ к данным другого приложения или запустить их в текущем процессе. когда из действия действие другого приложения называется android передает управление новому названному действию, и они запускаются в совершенно разных процессах.

Однако в вашем файле манифеста вы можете явно указать идентификатор пользователя для вашего приложения. Когда вы объявляете один и тот же идентификатор пользователя для нескольких приложений, они могут обращаться к ресурсам друг друга (полям данных, представлениям и т. Д.). Вы можете отобразить данные из другого приложения или запустить их в своем процессе.

вот как вы это используете: от http://developer.android.com/guide/topics/manifest/manifest-element.html

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="string"
    android:sharedUserId="string"
    android:sharedUserLabel="string resource" 
    android:versionCode="integer"
    android:versionName="string"
    android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
    . . .</manifest>
...