2015-12-17 30 views
2

是否有任何android api可以获取关于购买应用的信息?我不谈论应用内购买。只是简单的APP购买。Android:获取关于应用购买的信息

我需要任何唯一的标识符,如事务ID或类似的东西。

+0

对不起,我不清楚应用程序购买。您是否问过关于API获取有关Google Play应用程序的信息(价格,可用性,国家..等等)? –

+0

不......应用程序本身必须标识自己的购买行为,因为应用程序应该只执行一次操作,即使在卸载并重新安装时也是如此,因此我们必须能够检查此操作是否已完成此购买。 – wutzebaer

+0

如下所述,如果开箱即可使用,我不确定。但是如果我是你,我会在你的服务器端实现一些微小的API端点,并发送它的散列版本的用户accountId(参见[通过Android访问Google帐户ID /用户名](http://stackoverflow.com/questions/) 2245545/access-google-account-id-username-via-android))以及此方法对这个特定用户ID的初始调用的时间戳响应(即他改变了他的电话 - 你仍然会追踪他)。我不知道它是否可以被视为对你问题的答案。(如果是的话 - 我会将它转换为答案) –

回答

1

正如在其他的答案中提到保存数据,它看起来像有没有它的公共API。 (我相信,其原因是,默认情况下 - 一旦用户启动应用程序 - 他已经从Google Play获得,因此在理想的世界中,应该不需要此检查)

如果我是您将在服务器端实施一些微小的API端点,并将该方法初始调用的用户accountId的散列版本(请参见Accessing Google Account Id /username via Android)和时间戳响应(或任何其他合理的数据返回)发送给此特定用户标识(即一旦他改变了他的电话 - 你仍然会追踪他)。

为了获得当前帐户做到这一点:

Account[] accounts = AccountManager.get(this).getAccountsByType("com.google"); 
    if (accounts.length != 0) { 
     String myEmailid=accounts[0].toString(); 
    } 

(从here拍摄)

测试在API 19API 23(在版本的Android M它需要因一点额外的工作许可检查)

+0

accounts [0]永远是活动的吗? – wutzebaer

+0

@wutzebaer我可以告诉我 - 我已经**用两个Google帐户(在2个不同的操作系统版本 - ** API 19 **和** API 23 **以及2个不同的设备上)测试** - 它的作用就像一种魅力。说,它始终工作 - 我正在检查Android源代码的一些证据。 –

+0

好的,谢谢我们在同一时间测试 – wutzebaer

1

据我所知,没有办法通过应用程序卸载/重新安装来保存这些信息。您可以获取安装时间戳,但重新安装时会重置。

然而,一个可行的解决方案可能是设置SharedPreferences一个标志,并使用Android备份(http://developer.android.com/guide/topics/data/backup.html#SharedPreferences

+0

是用户能够删除此备份的数据? – wutzebaer

+0

不像我从文档 – mlidal

+0

http://developer.android.com/google/backup/index.html中可以看到的那样“当用户禁用备份时,Android备份服务会删除所有保存的备份数据。” – wutzebaer

1

最可靠的方法是创建您自己的(网络)服务,并让应用程序注册自己的谷歌用户名(How do I retrieve the logged in Google account on android phones?),并在稍后重新安装时检查注册。

+0

该解决方案不包括如何检测哪些谷歌帐户已经购买了应用程序,如果多个已注册 – wutzebaer

+0

@wutzebaer这是“设计”。如果您有2个Google帐户并且购买了其中一个帐户,那么您不应该从另一个帐户获得购买(否则,这将是安全漏洞,并会导致应用程序被盗用)。所以你必须依靠“当前”帐户用户运行应用程序。 –

+0

以及如何确定当前帐户? – wutzebaer