0

我正在尝试使用 Android 应用程序访问我的 AppEngine 应用程序的非默认版本。为了清楚起见,我的默认版本是1,我的新版本是2. 请注意,我不能(还)让版本2成为默认版本。

从文档:

该元素包含应用程序代码的最新版本的版本标识符。版本标识符可以包含小写字母、数字和连字符。它不能以前缀“ah-”开头,并且名称“default”和“latest”是保留的,不能使用。AppCfg 在上传应用程序时使用此版本标识符,告诉 App Engine 使用给定标识符创建应用程序的新版本,或者使用给定标识符替换应用程序版本(如果已存在)。您可以使用在 URL 中使用“-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 应用程序与2我的 AppEngine 应用程序版本通信?

4

1 回答 1

0

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

此页面上,它说您可以定义 aroot和 a version。这就是我为完成这项工作所做的工作:

  • 添加versionroot到我的端点类:

.

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

现在通过我的DeviceInfoEndpoint班级进行的所有调用都发送到2我的 AppEngine 应用程序的版本。

于 2013-08-15T10:23:22.083 回答