32

インストールされているAndroidアプリケーションのLinuxUID(ユーザーID)を取得できるようにしたいと思います。

セキュリティと権限からの抜粋:「インストール時に、Androidは各パッケージに個別のLinuxユーザーIDを提供します。IDは、そのデバイスでのパッケージの存続期間中は一定のままです。」

このUIDを取得する方法はありますか?

4

6 に答える 6

47

adb shell dumpsys package com.example.myapp | grep userId=

于 2013-09-21T01:07:50.487 に答える
25

とを使用PackageManagergetApplicationInfo()ます。

于 2011-05-25T12:43:13.983 に答える
11
  • に存在する‍<code>packages.xmlファイル/data/system
  • に存在するpackages.listファイル/data/system

インストールされているアプリケーションとそれに対応するUIDのリストが含まれています。

于 2012-03-26T22:48:06.317 に答える
4
PackageManager packageManager = getPackageManager();
try {
    applicationId = String.valueOf(packageManager.getApplicationInfo("com.example.app", PackageManager.GET_META_DATA));
} catch (PackageManager.NameNotFoundException e) {
    e.printStackTrace();
}
于 2017-12-26T07:27:42.170 に答える
2

android.os.Process.myUid()呼び出し元のアプリのUIDを直接取得するために使用します。

独自のUIDを見つけるためにPackageManagerを使用する必要はありません。

于 2020-03-10T13:07:39.003 に答える
1

CommonsWareがすでに書いているPackageManagerように、UIDを取得するために使用できます。

次に例を示します。

int uid;
try {
    ApplicationInfo info = context.getPackageManager().getApplicationInfo(
            context.getPackageName(), 0);
    uid = info.uid;
} catch (PackageManager.NameNotFoundException e) {
    uid = -1;
}
Log.i(LOG_TAG, "UID = " + uid);
于 2019-03-21T15:17:27.200 に答える