ドキュメント(http://developer.android.com/guide/topics/manifest/manifest-element.html#uid)は、生の文字列とそれが追加されたAPIレベルを使用できないと述べていますが、なぜそれを使用したいのか説明していません。 アンドロイド:sharedUserIDを「com.foo.bar」に設定していれば、android:sharedUserLabelで参照される文字列にどのような値を入れるべきですか?そして最も重要なのはなぜですか? android:sharedUserLabelとは何ですか?android:sharedUserIDの上に追加された付加価値は何ですか?
はありがとう
10
A
答えて
7
限り(あなたが同じUIDで複数のプロセスを持っている場合)AOSPは、実際にユーザーにかなりの名前を表示するだけで、このラベルを使用することができますから、私は理解して。たとえば、RunningState.javaファイルのコードの一部を次に示します。
// 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) {
}
}
基本的に、次のことを行います。まず、プロセス全体に関する情報を取得しようとします。見つからない場合は、アプリケーションのUIDをパラメータとして情報を取得しようとします(これはここで示したコードの一部です)。このUIDを持つパッケージが1つだけの場合、プロセスに関する情報はこのパッケージから得られます。しかし、いくつかのパッケージ(shareUserIdを使用している)があれば、それは反復し、正式な(かなり)名前を見つけることを試みます。したがって
<!-- Label to show to user for all apps using this UID. -->
<string name="uid_label">Media</string>
、名前Media
を持つことになりますandroid:sharedUserId="android.media"
を使用するすべてのプロセス:私の言葉に確認として
私はこの機能が普通の開発者によって多く使用されるとは思わないし、それらのために便利です。
関連する問題
- 1. ASP.NETプロファイルプロバイダー:それは付加価値ですか?
- 2. GitHubのグラフ作成メトリクスでは、「追加」とは何ですか?
- 3. Doctrineはアクティブレコードの上に何を追加しますか - CodeIgniter?
- 4. mysqlクエリにランク付けすると何が追加されますか?
- 5. MySQLで使用されるデフォルトフィールドと追加フィールドは何ですか?
- 6. System.Web.Caching.Cacheに追加される項目のデフォルトの動作は何ですか?
- 7. 私のアプリケーションに評価機能を追加したいこれを行う方法は何ですか?
- 8. Magento - 計算された価格の上にパーセンテージを追加
- 9. コンポーネントにイベントリスナーを追加し、そのコンポーネントをパネルまたはフレームに追加する順序は何ですか?
- 10. このテストは本当に価値を追加しますか?
- 11. Pythonでは、追加で追加されたセットの追加はサポートされていませんか?
- 12. python: `__slots__`に`__dict__`を追加する点は何ですか?
- 13. appendChild()で追加できるJSオブジェクトは何ですか?
- 14. Rで使用できる追加ラインタイプは何ですか?
- 15. メソッドに追加すると、constructキーワードは何をしますか?
- 16. サービスファブリックソリューションのための.gitignoreに追加する特定のファイルは何ですか?
- 17. Angular.jsフレームワークの追加のjsファイルは何ですか?
- 18. SDLの追加のファイル依存関係は何ですか?
- 19. jqueryで選択したテキストに何かを追加する
- 20. Facebookのページに似たボタンを追加する - appidは何ですか?
- 21. スクロールに適したFPSとは何ですか?パフォーマンスを向上させるためのヒントは何ですか?
- 22. 関数として呼び出されたときにeasy_installに追加の検索リンクを追加する正しい方法は何ですか?
- 23. 多くのモデルにコメントを追加するベストプラクティスとは何ですか?
- 24. ジェネレータ引数で構築されたdict()に追加のキーと値のペアを追加するには?
- 25. Bambooでdockerタスクを追加するときのreporitory名は何ですか?
- 26. C#でWindows Server上でIPSecポリシーを追加および削除するためのオプションは何ですか?
- 27. 自動コンテンツを追加するSubversionとCVSのタグとは何ですか?
- 28. カスタムMembershipProviderのユーザーセッションに何かを追加できますか?
- 29. 円ラベルに値と上付き文字を追加する
- 30. 返品とは何ですか? (価値のない)意味ですか?