2010-10-08 3 views
5

У меня есть приложение, которое я хотел бы распространять через рынок, а также с моего собственного сайта. Как мне, используя только одну сборку и один ключ, проверьте, было ли приложение загружено с рынка или нет?android: обнаружить, если приложение было загружено с рынка

This question ответил, что код подписан с помощью разных ключей, но мы идеально хотим одну сборку.

+0

Что касается как я знаю, это невозможно сделать в одной сборке. –

+0

Sergey - Вставьте это как ответ, и я помету его как правильно. Из того, что я могу сказать, вы правы в том, что это невозможно. – Martyn

ответ

1

Кажется, что это невозможно.

+1

Обратите внимание, что это невозможно сделать только с учетом ограничений OP. Это можно сделать, подписав сборку Market с помощью уникального ключа и сравнив контрольную сумму ключа с сохраненным значением внутри приложения. Лично я предпочитаю настраивать скрипт сборки для версий отладки и отладки. –

0

Я не знаю, действительно ли это коррелирует или нет, но если вы можете читать /data/system/packages.xml, на рынке приложений, похоже, есть installer = "com.google.android.feedback", в то время как те, системная сборка и локальные компиляции.

+1

В Android Market есть пакет "com.android.vending". –

1

На моем Android 1.5 приложения для мобильных телефонов, установленные через Market, перечислены в разделе «Мои закачки» в приложении Market, поэтому вопрос заключается в том, можно ли получить этот список во время выполнения. Я не знаю, совпадает ли это с 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()' не всегда возвращает то же значение (или любое значение вообще), когда приложение установлено через Market. –

Смежные вопросы