2009-08-12 111 views

回答

2

我不知道什麼是「應用程序ID」你是指,但對於應用程序的一個唯一的標識符,您可以使用:

getApplication()getPackageName()方法,從當前的活動

+2

每個安裝的應用程序有一個唯一的ID ...是有可能從其他應用程序 – arams 2009-08-12 09:27:51

+2

得到一個應用程序的唯一ID不是吧'getApplicationContext()。getPackageName()'? – 2016-02-26 02:53:39

0

PackageInfo.sharedUserId字段將顯示在清單中分配的用戶Id

如果你想兩個應用程序具有相同的用戶id,這樣他們就可以看到對方的數據,並在同一個進程中運行,然後將它們分配清單中的相同用戶名:

android:sharedUserId="string" 

兩個包帶相同的sharedUserId也需要具有相同的簽名。

我也建議您閱讀here以正確方向輕推。

+0

2個不同的應用程序使用相同的程序包名稱意味着,應用程序可以共享數據嗎?... – arams 2009-08-13 06:19:01

+0

否。如果兩個應用程序具有相同的shareUserId,並且使用相同的簽名簽名,則可以共享數據。包名不是問題。 – Will 2009-08-14 00:15:31

0

如果整個目的是與其他應用程序通信數據,請使用Intent的sendBroadcast方法。

1

否則你可以得到進程的ID您的應用程序在運行:

最終靜態INT android.os.Process.myPid()
返回此進程的標識,它可以與killProcess使用(INT )和sendSignal(int,int)。

30

如果application id,你指的是package name,則可以使用該方法Context::getPackageNamehttp://http://developer.android.com/reference/android/content/Context.html#getPackageName%28%29)實際設備標識符

  • Settings.Secure.ANDROID_ID

    如果你想與其他應用程序進行通信,有多種方法:

    1. 啓動另一個應用程序的活動,並在「其他」發送數據的「意圖」
    2. 的發送廣播如果您只需要共享結構化數據,請使用內容提供商
    3. 如果其他應用程序需要在後臺連續運行,請使用Server並將您自己「綁定」到服務。

    如果您可以詳細說明您的具體要求,社區將能夠更好地爲您提供幫助。

  • +0

    如果我想顯示應用程序列表,並且需要將該ID作爲整數,就像所有列表適配器都需要一樣,該怎麼辦?我可以使用安裝時間,但它是一個很長的類型。將它轉換爲int仍然有幫助? – 2015-11-08 23:38:20

    +2

    包名通常不是applicationId,當您通過build.gradle進行設置時! – 2017-02-24 13:16:15

    0

    如果您使用的是新的Gradle構建系統,那麼getPackageName會奇怪地返回應用程序ID,而不是包名稱。所以MasterGaurav的答案是正確的,但他並不需要與++

    如果應用程序ID,你指的是包的名字開始......

    查看更多有關分歧here

    **在這一點上不那麼新

    ++我意識到,他的答案在2011年

    50

    非常有意義如果正在尋找在gradle這個applicationId定義的值,你可以簡單地使用

    BuildConfig.APPLICATION_ID 
    
    +0

    Gradle太棒了!這是一個生活救星。 – hgoebl 2016-10-04 07:07:52

    +7

    如果你正在編寫一個Android庫,這不會有用 – 2017-09-13 09:54:32

    相關問題