2011-04-25 3 views
1

BroadcastReceiverintent이 수신 된 응용 프로그램의 패키지 이름을 receiver에 표시하고 싶습니다. intent.getPackage() 메서드를 사용했지만 작동하지 않습니다. 또한 패키지 이름을 표시하기 위해 onReceive() 메서드의 매개 변수 인 컨텍스트 개체를 사용하여 해당 패키지 이름을 표시하려고했지만 작동하지 않습니다.안드로이드에서 응용 프로그램의 패키지 이름을 얻는 방법은 무엇입니까?

도와주세요. 미리 감사드립니다.

답변

0

이 방법 :

ApplicationInfo packageInfo = this.getApplicationContext().getApplicationInfo(); 
packageName = packageInfo.packageName; 

편집 : 이것은 방송 수신기에서 작동하지 않습니다, 나는 질문을 오해.

이 페이지를 읽는 중 : http://developer.android.com/reference/android/content/Intent.html Intent.getPackage는 호출 한 패키지를 제공하지 않지만 의도가 제한된 패키지를 제공하지 않습니다.

이 페이지를 명확하게 이해하면 인 텐트는 패키지 이름이나 식별 할 수있는 것을 제공하지 않습니다.

당신이 의도를 보내는 사람이라면 (나는 그렇지 않다고 생각하지만), 브로드 캐스트 리시버에서 검색 할 수있는 파셀 블에 의도 한대로 패키지 이름을 보낼 수 있습니다. 그렇지 않으면, 나는 그것이 가능하다고 생각하지 않는다.

+0

감사합니다.하지만 BroadcastReceiver를 확장하는 클래스에서 나가는 전화 통화와 같은 의도를 가로 채고 있으며 해당 클래스의 onReceive() 메소드에서 나가는 전화 통화와 같은 의도를 보낸 응용 프로그램의 패키지 이름을 인쇄하려고합니다. . 그래서 intent.getPackage() 메서드를 사용했지만 null 값을 반환합니다. – gauri

+0

죄송합니다. 귀하의 질문을 잘못 읽었습니다. 나는 내 대답을 편집했다. 덕분에 – Yahel

+0

. 그러나 나는 "패키지 이름의 의도가 제한되어있다"라는 말을 이해하지 못했습니다. 그 의도의 활동 이름이나 프로세스 이름을 얻는 것과 같은 다른 방법이 있습니까? 나가는 전화를 위해 나는 전화 번호를 얻고있다. 하지만 나는 또한 몇 가지 추가 정보를 검색하고 싶다. – gauri

관련 문제