Soweit ich aus der AOSP wirklich verstehen Sie dieses Label nur an einen Benutzer einen hübschen Namen (wenn Sie mehrere Prozesse in der gleichen uid haben) können angezeigt werden soll. Zum Beispiel ist hier ein Teil des Codes in der RunningState.java Datei:
// If we couldn't get information about the overall
// process, try to find something about the uid.
String[] pkgs = pm.getPackagesForUid(mUid);
// If there is one package with this uid, that is what we want.
if (pkgs.length == 1) {
try {
ApplicationInfo ai = pm.getApplicationInfo(pkgs[0], 0);
mDisplayLabel = ai.loadLabel(pm);
mLabel = mDisplayLabel.toString();
mPackageInfo = ai;
return;
} catch (PackageManager.NameNotFoundException e) {
}
}
// If there are multiple, see if one gives us the official name
// for this uid.
for (String name : pkgs) {
try {
PackageInfo pi = pm.getPackageInfo(name, 0);
if (pi.sharedUserLabel != 0) {
CharSequence nm = pm.getText(name,
pi.sharedUserLabel, pi.applicationInfo);
if (nm != null) {
mDisplayLabel = nm;
mLabel = nm.toString();
mPackageInfo = pi.applicationInfo;
return;
}
}
} catch (PackageManager.NameNotFoundException e) {
}
}
Grundsätzlich tut es die folgenden Dinge. Zunächst versucht es Informationen über den Gesamtprozess zu erhalten. Wenn es nicht gefunden wird, versucht es Informationen über die UID der Anwendung als Parameter zu erhalten (dies ist ein Teil des Codes, den ich hier angegeben habe). Wenn es nur ein Paket mit dieser UID gibt, werden die Informationen über den Prozess von diesem Paket erhalten. Aber wenn es mehrere Pakete gibt (mit shareUserId), iteriert es und versucht den offiziellen (hübschen) Namen zu finden.
Als Bestätigung meiner Worte fand ich die folgende Zeichenfolge in MediaProvider:
<!-- Label to show to user for all apps using this UID. -->
<string name="uid_label">Media</string>
So alle Prozess, der android:sharedUserId="android.media"
Namen Media
wird verwendet.
Ich denke nicht, dass diese Funktion von normalen Entwicklern verwendet wird und für sie nützlich ist.