Android: определить, если приложение было загружено с маркета
У меня есть приложение, которое я хотел бы распространять через рынок, а также с моего собственного сайта. Как мне, используя только одну сборку и один ключ, проверить, было ли приложение загружено с рынка или нет?
На этот вопрос отвечает код, подписанный разными ключами, но в идеале мы хотим одну сборку.
5 ответов
packageManager.getInstallerPackageName(контекст).equals ("com.google.android.feedback")
http://developer.android.com/reference/android/content/pm/PackageManager.html)
На моей трубке Android 1.5 только приложения, установленные через Market, перечислены в разделе "Мои загрузки" в Market App, поэтому вопрос заключается в том, можете ли вы получить этот список во время выполнения. Я не знаю, так ли это с Android 2.x.
Платные приложения с рынка могут использовать модуль лицензирования Android, чтобы определить, покупаются ли они на рынке. Но для бесплатных приложений я не знаю решения
http://developer.android.com/guide/publishing/licensing.html
Я не знаю, действительно ли это коррелирует или нет, но если вы можете прочитать /data/system/packages.xml маркетинговые приложения, кажется, имеют installer="com.google.android.feedback", в то время как те, которые включены в сборку системы и те, локально скомпилированный нет.