2011-03-07 8 views
2

Android 기기에 설치된 Android 앱을 고유하게 식별해야합니다. 모든 Android 기기에는 고유 ID가 있고 모든 애플리케이션은 Android 용 Linux 사용자와 비슷하다는 것을 알고 있습니다.Android에서 애플리케이션 ID를 얻는 방법은 무엇입니까?

하지만 동일한 키로 서명하고 콘텐츠를 공유하도록 설계된 두 개의 응용 프로그램이 동일한 사용자 ID를 가질 수있는 경우가 있습니다.

모든 Android 기기에서 모든 애플리케이션의 고유 ID를 식별 할 수있는 방법이 있습니까? 이 고유 ID를 기반으로 무언가를 방송하고 싶을 때 응용 프로그램은이를 수신하고 그에 따라 행동해야합니다.

코드를 통해 애플리케이션 ID/사용자 ID를 얻을 수 있습니까?

미리 감사드립니다.

건배, Prateek

답변

3

나는, 우리는 다음과 같은 코드를 사용하여 장치에 설치된 각 응용 프로그램의 응용 프로그램 ID를 얻을 수 패키지 이름이 모든 응용 프로그램

+0

@Prateek Jain은 올바른 진술이 아니며 동일한 패키지 이름으로 두 번째 apk를 설치할 수 없습니다. – schwiz

1

PackageInfo.sharedUserId 필드는 매니페스트에 할당 된 사용자 ID를 표시합니다.

당신은 그들이 서로의 데이터를 참조하고 동일한 프로세스에서 실행할 수 있도록, 동일한 사용자 ID가 두 개의 응용 프로그램이 필요한 경우, 그들에게 매니페스트 같은 userId를 할당합니다

안드로이드 :의 sharedUserId = "APP1을" 동일한 sharedUserId를 사용하는 두 패키지의 서명이 동일해야합니다.

+0

나는 두 개의 서로 다른 응용 프로그램에서 사용자 ID를 공유하고 싶지 않아요. 내가 알고 싶은 것은 - "sharedUserId"를 공유하더라도 응용 프로그램을 고유하게 식별 할 수있는 방법이 있습니까? –

+0

코드를 통해 응용 프로그램/사용자 ID를 얻으시겠습니까? –

2

예에 대해 고유 생각합니다. 동일한 키로도 서명하는 경우 응용 프로그램 패키지 이름이 달라집니다.

ResolveInfo info = mApps.get(position); 
  • info.activityInfo.packageName 독특한 패키지 이름을 반환합니다. mAppsList<ResolveInfo> mApps입니다.

  • .get(position)은 목록보기 또는 격자보기에서 항목의 위치를 ​​반환합니다.

감사합니다, 메릴랜드 인 Saifuddin

관련 문제