2011-10-15 1 views
3

를 식별하는 방법 모든 안드로이드 응용 프로그램 고유 내가 TrafficStats API에 대한 작업 된 안드로이드 응용 프로그램

for (ApplicationInfo info : packageManager.getInstalledApplications(0)) { 
int uid = info.uid; 
CharSequence AppName = packageManager.getApplicationLabel(info); 
String packageManager = packageManager.packageManager.getNameForUid(uid).split(":")[0];    } 

에 대한 정보를 얻기 위해 다음 코드를 사용하지만 난이 세 가지 변수를 로그인 할 때. 혼란스러운 결과를줍니다. 그들 중 누구도 유일하지 않습니다. 같은 UID를 들어, 많은 응용 프로그램이와 같은 패키지 이름에있는 많은 응용 프로그램은 바로 저기 아래 로그 출력 그리고

AppName is:Phone UID:1001 package: android.uid.phone 
AppName is:DM Command Service UID:1001 package: android.uid.phone 
AppName is:Dialer Storage UID:1001 package: android.uid.phone 
AppName is:SIM Toolkit UID:1001 package: android.uid.phone 

, 응용 프로그램을 식별하는 방법에 대해 설명합니다.

답변

5

Android는 패키지 이름을 사용하여 앱을 고유하게 식별합니다. 패키지 이름 대신 userId 이름을 인쇄하고 있습니다. 패키지 이름을 출력하면 차이가 나타납니다. 이 시도 : 당신이보고있는 무슨에 관해서는

String packageName = info.packageName;

을, 안드로이드 애플 리케이션은 동일한 서명 및 사용자 ID 공유하도록 구성 할 수 있습니다. 이 모든 설정은 AndroidManifest.xml에서 설정합니다.

예를 들어 휴대 전화 앱이 설정

package="com.android.phone" 
android:sharedUserId="android.uid.phone" 

을 가지고 있으며 전화 공급자가 동일한의 sharedUserId를 공유하는이 설정

package="com.android.providers.telephony" 
android:sharedUserId="android.uid.phone" 

주의 사항이 있습니다.

관련 문제