2010-10-08 120 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

相关问题