2011-04-25 39 views
1

我想顯示BroadcastReceiver中的應用程序包名稱,其intentreceiver中收到。我使用了intent.getPackage()方法,但它不起作用。我還嘗試使用上下文對象顯示該包名稱,該對象是參數onReceive()方法來顯示包名稱,但它不起作用。如何在Android中獲取應用程序的包名?

請幫幫我。提前致謝。

回答

0

這樣:

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

編輯:這是不是從廣播接收機的工作,我誤解了問題。

閱讀本頁:http://developer.android.com/reference/android/content/Intent.html Intent.getPackage不會爲您提供調用的包,而是意圖限制的包。

如果我明白這個頁面,Intents不會提供包名或任何允許您識別的內容。

如果您是發送意圖的人(但我相信您不是),那麼您可以在意圖中將包名稱發送到您可以在廣播接收器中檢索到的可發送包中。否則,我認爲這是不可能的。

+0

Thanks.But我正在攔截意圖,例如正在擴展BroadcastReceiver的類中的傳出電話調用,並且在該類的onReceive()方法中,我想打印已發送意向的應用程序的包的名稱,如傳出的電話呼叫。這就是爲什麼我使用intent.getPackage()方法,但它返回空值。 – gauri 2011-04-25 09:55:44

+0

對不起,我誤解了你的問題。我編輯了我的答案。 – Yahel 2011-04-25 10:07:59

+0

謝謝。但我不明白朮語「包名的意圖是有限的」。是否有任何其他方式獲取該意圖的活動名稱或進程名稱?對於打出的電話,我只是拿到了電話號碼。但我想要檢索一些額外的信息。 – gauri 2011-04-25 10:49:58

相關問題