2010-10-08 124 views
5

我有一個應用程序,我想通過市場和我自己的網站分發。我如何僅使用一個版本和一個密鑰來檢查應用程序是否從市場上下載?android:檢測應用程序是否從市場上下載

This question通過讓代碼用不同的鍵簽名來解答,但我們理想地希望單個構建。

+0

據因爲我知道這不能在一個版本中完成。 – 2010-10-08 12:29:49

+0

謝爾蓋 - 堅持下來作爲答案,我會將其標記爲正確的。從我所知道的情況來看,你是對的,這是不可能的。 – Martyn 2010-10-11 15:50:19

回答

1

看來這不能做到。

+1

請注意,只有在OP的約束條件下才能完成。它可以通過使用唯一密鑰對Market構建進行簽名並將密鑰的校驗和與應用內的存儲值進行比較來完成。就個人而言,我更願意通過構建腳本來定製發佈版本與調試版本。 – 2011-11-20 20:39:37

0

我不知道這是否真正相關,但如果您可以閱讀/data/system/packages.xml市場應用程序似乎有installer =「com.google.android.feedback」,而那些捆綁系統構建和那些本地編譯沒有。

+1

最近Android Market已經打包「com.android.vending」。 – 2012-01-07 08:15:07

1

在我的Android 1.5手機只有通過市場安裝的應用程序被列在市場應用程序的「我的下載」中,所以問題是如果您可以在運行時檢索該列表。我不知道是否與Android 2.x相同。

3

packageManager.getInstallerPackageName(上下文).equals( 「com.google.android.feedback」)

http://developer.android.com/reference/android/content/pm/PackageManager.html#getInstallerPackageName(java.lang.String

+2

這可能不是一個可行的解決方案,因爲[某些開發人員正在報告](http://groups.google.com/group/android-developers/browse_thread/thread/d3c0ac0748e38132)getInstallerPackageName()並不總是返回當應用程序通過市場安裝時,相同的價值(或任何價值)。 – 2011-11-20 20:32:23

相關問題