0

Android アプリを使用して、AppEngine アプリケーションのデフォルト以外のバージョンにアクセスしようとしています。クリアランスのために、私のデフォルト バージョンは1で、新しいバージョンは2です。2versionをデフォルトのバージョンにすることは (まだ) できないことに注意してください。

ドキュメントから:

この要素には、アプリのコードの最新バージョンのバージョン識別子が含まれています。バージョン識別子には、小文字、数字、およびハイフンを含めることができます。接頭辞「ah-」で始めることはできず、「default」および「latest」という名前は予約されているため使用できません。AppCfg はアプリケーションをアップロードするときにこのバージョン ID を使用し、指定された ID でアプリの新しいバージョンを作成するか、指定された ID が既に存在する場合はアプリのバージョンを指定された ID で置き換えるように App Engine に指示します。URL のサブドメイン セパレータとして「-dot-」を使用する URL を使用して、アプリの新しいバージョンをテストできます (例: http://_version_id_-dot-_your_app_id_.appspot.com )。Admin Console を使用して、ユーザーに表示されるアプリのバージョン (「デフォルト」バージョン) を選択できます。

残念ながら、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_NUMBERGCM 登録にANDROID_AUDIENCE使用され、 は次のように使用されます。

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

2Android アプリケーションをAppEngine アプリケーションのバージョンと通信させるにはどうすればよいですか?

4

1 に答える 1

0

@dragonx は Python リンクを提供しましたが、私は Java を使用しています。

このページrootでは、 aと aを定義できると書かれていますversion。これを機能させるために私が行ったことは次のとおりです。

  • versionおよびrootをエンドポイント クラスに追加します。

.

@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 に答える