我正在尝试使用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
版本进行通信?
答案 0 :(得分:0)
@dragonx提供了一个Python链接,但是,我正在使用Java。
在this page上,它表示您可以定义root
和version
。这就是我为完成这项工作所做的工作:
version
和root
添加到我的端点类:
@Api(version = "2", root="https://2-dot-my_app_id.appspot.com/_ah/api", name = "deviceinfoendpoint", clientIds = (...) )
public class DeviceInfoEndpoint {
现在,通过我的DeviceInfoEndpoint
课程发出的所有电话都会发送到我的AppEngine应用程序的2
版本。