我想在android中获取whatsapp的uid,我知道Whatsapp的包名。我怎样才能做到这一点?谢谢。
答案 0 :(得分:6)
我使用以下代码找到了WhatsApp的uid
int uid = 0;
try {
uid = this.getPackageManager().getApplicationInfo("com.whatsapp", 0).uid;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
答案 1 :(得分:1)
Android在安装时为每个应用程序分配一个UID(用户ID);与PID(进程ID)不同,它是瞬态的并且一直在不断变化,只要不重新安装应用程序,UID就保持不变。 UID应该对每个应用程序都是唯一的,除非应用程序显式请求与另一个应用程序共享用户标识(对此有安全限制,这两个应用程序必须使用相同的私钥签名,即来自同一个开发人员)。
这些应用声称显示应用程序的UID:
https://market.android.com/details?id=redfishandroid.appexplorer https://market.android.com/details?id=com.sayhello2theworld.te
尝试查看/data/system/packages.xml(您需要root来查看此文件),每个安装的应用程序都应该有一个条目。说,我的手机中安装了Adobe Reader:
<package name="com.adobe.reader" codePath="/mnt/asec/com.adobe.reader-1/pkg.apk" flags="262144" ts="1300539048000" version="37149" userId="10034" installer="com.google.android.feedback">
<sigs count="1">
<cert index="21" key="... very long random string ..." />
</sigs>
<perms />
</package>
我的手机已将userId =“10034”分配给Adobe Reader。
对于已请求与其他应用程序共享用户ID的应用程序,请说Handcent:
<package name="com.handcent.nextsms" codePath="/system/app/HandcentSMS.apk" flags="1" ts="1217592000000" version="373" sharedUserId="10064">
<sigs count="1">
<cert index="17" key="... very long random string ..." />
</sigs>
</package>
然后您要查找的属性是sharedUserId =“10064”
答案 2 :(得分:0)
PACKAGENAME=termux
jcomeau@aspire:~$ adb shell ps -n | grep $PACKAGENAME
10114 17830 246 769444 40176 SyS_epoll_ 00000000 S com.termux
10114 17856 17830 12164 2032 poll_sched 00000000 S /data/data/com.termux/files/usr/bin/bash
这适用于Android 6.0版的BLU Dash X2。
此外,用户名与UID匹配,即10114的用户名为u0_a114。