获取Android应用的Linux UID

问题描述

| 我希望能够获取已安装的Android应用程序的Linux UID(用户ID)。 摘自“安全性和权限”:\“在安装时,Android为每个程序包提供了一个独特的Linux用户ID。在程序包在该设备上的整个生命周期内,身份始终保持不变。” 有没有办法检索此UID?     

解决方法

使用
PackageManager
getApplicationInfo()
。     ,
adb shell dumpsys package com.example.myapp | grep userId=
    ,
/data/system
中存在的
packages.xml
文件
/data/system
中存在的
packages.list
文件 包含已安装的应用程序及其对应的UID的列表。     ,
PackageManager packageManager = getPackageManager();
try {
    applicationId = String.valueOf(packageManager.getApplicationInfo(\"com.example.app\",PackageManager.GET_META_DATA));
} catch (PackageManager.NameNotFoundException e) {
    e.printStackTrace();
}
    ,正如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);
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...