Programing

Android 애플리케이션 ID를 얻는 방법은 무엇입니까?

lottogame 2020. 10. 14. 07:20
반응형

Android 애플리케이션 ID를 얻는 방법은 무엇입니까?


Android에서 프로그래밍 방식으로 (또는 다른 방법으로) 애플리케이션의 ID를 얻는 방법과 해당 ID를 사용하여 다른 애플리케이션과 통신하려면 어떻게해야합니까?


applicationIdgradle에서 정의한 값을 찾고 있다면 간단히 사용할 수 있습니다.

BuildConfig.APPLICATION_ID 

application id의해을 참조 package name하는 경우 메서드 Context::getPackageName( http : // http : //developer.android.com/reference/android/content/Context.html#getPackageName%28%29 )를 사용할 수 있습니다 .

다른 응용 프로그램과 통신하려는 경우 여러 가지 방법이 있습니다.

  1. 다른 애플리케이션의 활동을 시작하고 "Intent"의 "Extras"에 데이터를 보냅니다.
  2. 특정 액션 / 카테고리와 함께 방송을 보내고 엑스트라에 데이터를 보냅니다.
  3. 구조화 된 데이터 만 공유해야하는 경우 콘텐츠 제공 업체를 사용하세요.
  4. 다른 응용 프로그램이 백그라운드에서 계속 실행되어야하는 경우 서버를 사용하고 서비스에 자신을 "바인딩"합니다.

정확한 요구 사항을 자세히 설명 할 수 있다면 커뮤니티에서 더 잘 도울 수 있습니다.


"애플리케이션 ID"가 무엇인지 잘 모르겠지만 애플리케이션의 고유 식별자에 사용할 수 있습니다.

현재 활동의 getApplication (). getPackageName () 메서드


그렇지 않으면 애플리케이션이 실행되는 프로세스의 ID를 얻을 수 있습니다.

final static int android.os.Process.myPid ()
killProcess (int) 및 sendSignal (int, int)와 함께 사용할 수있는이 프로세스의 식별자를 반환합니다.


앱 / 설치 ID가 무엇에 필요한지 잘 모르겠지만 Android 개발자의 훌륭한 기사에서 기존 가능성을 검토 할 수 있습니다.

요약하자면 :

  • UUID.randomUUID() 설치 후 앱이 처음 실행될 때 ID를 생성하고 이후에 간단한 검색을 위해
  • TelephonyManager.getDeviceId() 실제 기기 식별자
  • Settings.Secure.ANDROID_ID 비교적 현대적인 기기에서

PackageInfo.sharedUserId필드는 사용자 ID가 표시됩니다 매니페스트에 할당을 .

두 애플리케이션이 동일한 userId를 가지도록하여 서로의 데이터를보고 동일한 프로세스에서 실행할 수 있도록하려면 매니페스트에서 동일한 userId를 할당합니다.

android:sharedUserId="string"

sharedUserId가 동일한 두 패키지도 동일한 서명을 가져야합니다.

나는 또한 올바른 방향으로 넛지하기 위해 여기읽는 것이 좋습니다 .


전체 목적이 다른 애플리케이션과 데이터를 통신하는 것이라면 Intent의 sendBroadcast 메소드를 사용하세요.


새로운 ** Gradle 빌드 시스템을 사용하는 경우 getPackageName이상하게도 패키지 이름이 아닌 애플리케이션 ID가 반환됩니다. 따라서 MasterGaurav의 대답은 정확하지만 ++로 시작할 필요는 없습니다.

애플리케이션 ID로 패키지 이름을 참조하는 경우 ...

여기 에서 차이점에 대해 자세히 알아 보십시오 .

**이 시점에서 그렇게 새로운 것은 아닙니다

++ 나는 그의 대답이 2011 년에 완벽하게 이해되었다는 것을 알고 있습니다.


Android App ES 파일 탐색기는 Bitwarden에 유용한 사용자 앱 섹션에 Android 패키지 이름을 표시합니다. Bitwarden은이를 "안드로이드 애플리케이션 패키지 ID (또는 패키지 이름)"라고합니다.


예를 들어 설치를 추적하려면 UUID를 식별자로 사용하고 설치 후 앱이 처음 실행될 때 새로 만들면됩니다. 다음은 하나의 정적 메서드 Installation.id (컨텍스트 컨텍스트)가있는 "Installation"이라는 클래스의 스케치입니다. 더 많은 설치 관련 데이터를 INSTALLATION 파일에 쓰는 것을 상상할 수 있습니다.

public class Installation {
private static String sID = null;
private static final String INSTALLATION = "INSTALLATION";
public synchronized static String id(Context context) {

    if (sID == null) {  
       File installation = new File(context.getFilesDir(), INSTALLATION);
       try {
           if (!installation.exists())
               writeInstallationFile(installation);
           sID = readInstallationFile(installation);
       } catch (Exception e) {
           throw new RuntimeException(e);
       }
    }
   return sID;
}

private static String readInstallationFile(File installation) throws IOException {
   RandomAccessFile f = new RandomAccessFile(installation, "r");
   byte[] bytes = new byte[(int) f.length()];
   f.readFully(bytes);
   f.close();
   return new String(bytes);
}

private static void writeInstallationFile(File installation) throws IOException {
   FileOutputStream out = new FileOutputStream(installation);
   String id = UUID.randomUUID().toString();
   out.write(id.getBytes());
   out.close();
}

}

Yon은 https://github.com/MShoaibAkram/Android-Unique-Application-ID 에서 더 많은 것을 볼 수 있습니다.


1 단계 : Google Play 스토어 열기

2 단계 : App Store에서 앱 열기 예 : facebook

3 단계 : 앱을 클릭하고 브라우저 링크를 확인하면 끝에서 id = com.facebook.katana & hl = en 이 표시되며 이것이 앱 고유 ID입니다.

참고URL : https://stackoverflow.com/questions/1264397/how-to-get-android-application-id

반응형