在Android应用程序中指定AppEngine版本

时间:2013-08-14 19:12:05

标签: android google-app-engine

我正在尝试使用Android应用访问我的AppEngine应用程序的非默认版本。清除时,我的默认版本为1,我的新版本为2。请注意,我不能(尚)将版本2作为默认版本。

来自文档:

  

该元素包含应用程序代码的最新版本的版本标识符。版本标识符可以包含小写字母,数字和连字符。它不能以前缀“ah-”开头,名称“default”和“latest”是保留的,不能使用。 AppCfg在上传应用程序时使用此版本标识符,告知App Engine使用给定标识符创建应用程序的新版本,或者如果已存在,则使用给定标识符替换应用程序版本。您可以使用“-dot-”作为网址中的子域名分隔符,使用URL测试应用的新版本,例如http://_version_id_-dot-_your_app_id_.appspot.com。您可以使用管理控制台选择用户看到的应用版本,即“默认”版本。

不幸的是,Android应用程序不直接使用此URL。我的应用使用的ID是:

final String PROJECT_NUMBER = "123456789012";
final String WEB_CLIENT_ID = "123456789012-abcdefghijklmnopqrstuvwxyz012345.apps.googleusercontent.com";
final String ANDROID_AUDIENCE = WEB_CLIENT_ID;

PROJECT_NUMBER用于GCM注册,ANDROID_AUDIENCE使用如下:

mCredential = GoogleAccountCredential.usingAudience(context, "server:client_id:" + Ids.ANDROID_AUDIENCE);

如何让我的Android应用程序与AppEngine应用程序的2版本进行通信?

1 个答案:

答案 0 :(得分:0)

@dragonx提供了一个Python链接,但是,我正在使用Java。

this page上,它表示您可以定义rootversion。这就是我为完成这项工作所做的工作:

  • versionroot添加到我的端点类:

@Api(version = "2", root="https://2-dot-my_app_id.appspot.com/_ah/api", name = "deviceinfoendpoint", clientIds = (...) )
public class DeviceInfoEndpoint {
  • 生成客户端库
  • 部署到AppEngine。

现在,通过我的DeviceInfoEndpoint课程发出的所有电话都会发送到我的AppEngine应用程序的2版本。