中国向けの Wear OS アプリを作成する

中国向けの Wear OS アプリを作成する場合、Google Play 開発者サービスがプリインストールされていないハンドセットを明らかにする必要があります。このページでは、国際的に活動するデベロッパーが中国市場向けに取り入れる必要がある一般的な変更について説明します。

適切なバージョンの Google Play 開発者サービスを使用する

Google Play 開発者サービスのバージョン 10.2.0 では、Fused Location Provider APIData Layer API を全世界でサポートしています。これらの API を使用する場合は、このバージョンを使用する必要がありますが、使用しない場合は、このバージョンを使用するかどうかは任意です。

現在、Google Play 開発者サービスには Wear アプリ用の新しい API が含まれていますが、中国向けの Wear OS アプリでは、GoogleApiClient に関連する API を引き続き使用する必要があります。詳しくは、Wearable API を使用するをご覧ください。

Fused Location Provider API

Fused Location Provider API を使用する場合は、Wear モジュールの build.gradle ファイルに次の依存関係を含める必要があります。

    dependencies {
        ...
        compile 'com.google.android.gms:play-services-location:10.2.0'
    }
    

Data Layer API

重要: Wear 2.0 以降では、Data Layer API の使用は推奨されていません。これは、アプリからインターネットに直接アクセスできるようになり、コードの開発が容易になったためです。また、iOS とペア設定された Wear デバイスでは Data Layer API を使用できません。

アプリで Data Layer API を使用する場合は、Wear モジュールの build.gradle ファイルに次の行を追加する必要があります。この行では、クライアント ライブラリのバージョン 10.2.0 を使用する必要があります。

    dependencies {
        ...

        compile 'com.google.android.gms:play-services-wearable:10.2.0'

        ...

    }
    

また、モバイル モジュールの build.gradle ファイルに次の行を追加する必要があります。Google Play 開発者サービスの依存関係はバージョン 10.2.0 への参照に置き換えます。

    dependencies {
        ...

        compile 'com.google.android.gms:play-services-wearable:10.2.0'

    }
    

認証

認証を実装する前にユースケースを見直して、認証が実際に必要かどうかを確認します。たとえば、天気予報を配信するアプリではおそらくログインが不要なため、認証も必要ないでしょう。

認証が必要な場合は、OAuth 2.0 を使用するか、代替手段としてデバイスでの入力を使用することをおすすめします。また、データレイヤを使用してセキュリティ トークンを渡すこともできます。ただし、データレイヤは iOS デバイスとペア設定されている Wear OS デバイスをサポートしていないため、データレイヤの使用は推奨されません。

ブリッジ通知

中国では、ブリッジ通知はサポートされていません。スマートフォンへの通知は、Wear デバイスが Bluetooth でスマートフォンに接続されている場合にのみ、Wear OS にブリッジされます。

位置情報と地図座標の互換性

中国でユーザーの位置情報を検出するには、他の国の場合と同様に、FusedLocationProvider を使用する必要があります。このため、スマートウォッチのハードウェアや、スマートウォッチがペア設定されているスマートフォン プラットフォームに関係なく、アプリでは最適な情報が考慮されます。また、Wear OS プラットフォームに組み込まれている電池の最適化のメリットも得られます。

FusedLocationProvider をサードパーティのマップ SDK と統合する場合、プロバイダ間の座標の互換性を考慮する必要があります。FusedLocationProviderWGS84 標準に沿って位置情報をレポートします。座標系は必要に応じて変換してください。

Google Fit のサポート

Google Fit の累積歩数計、通常の運動(分)、ハートポイント(強めの運動)は中国でもサポートされており、最大 7 日分が履歴に残ります。履歴にアクセスする場合にユーザーの認証情報を入力する必要はありません。

エミュレータのサポート

中国版の Wear OS エミュレータ イメージを使用してアプリをテストできます。このエミュレータ イメージは Android Studio 3.0 以降でサポートされています。

中国版のエミュレータでアプリをテストする手順は次のとおりです。

  1. Android Emulator 26.1.2 がインストールされていることを確認します。
  2. SDK Manager から中国向け Wear OS イメージをダウンロードします。
  3. AVD のプロファイルを作成する際に、中国向け Wear OS イメージを使用するように選択します。
  4. 開発用の中国向け Wear OS エミュレータを実行します。

アプリ固有の Bluetooth および Wi-Fi チャンネルを開始する

Wear OS はネットワーク リクエストを自動的にルーティングします。ほとんどの場合、アプリ固有の Bluetooth および Wi-Fi チャンネルをアプリで開く必要はありません。

アプリが中国でアプリ固有の Bluetooth および Wi-Fi チャンネルをリクエストした場合、そのリクエストはサイレントに失敗し、ユーザーに確認を求めるポップアップ ダイアログが表示されます。ユーザーが確認すると、チャンネルが開きます。この動作は、(初回使用時だけでなく)BluetoothAdapter.enable() または WifiManager.setEnabled(true) が呼び出されるたびに行われます。

注: Android 10(API レベル 29)以降を対象とするアプリで WifiManager.setEnabled() を呼び出す場合、そのアプリはシステムアプリまたは Device Policy Controller(DPC) である必要があります。

Permission Review Mode

中国向け Wear OS デバイスは Permission Review Mode で実行されます。このモードでは、targetApiLevel が 23 未満のアプリの使用方法に関して以下の制限が課されます。

  • インストール時に権限が付与されても、targetApiLevel が 23 未満のアプリが初めて起動するときに、そのアプリに対する権限を確認するよう求めるダイアログが表示されます。
  • アプリのすべてのコンポーネント(ブロードキャスト レシーバ、サービス、アクティビティなど)は、アプリが初めて使用されるまでは対応するイベントに応答しません。

そのため、targetApiLevel 23 以上を使用し、ランタイム権限に関するおすすめの設定を採用することを強くおすすめします。

Google Play 開発者サービスの他の API を使用する

Wearable API 以外の Google Play 開発者サービスの API をアプリで使用する場合は、ランタイム中にその API を使用して適切に応答できるかどうかを確認する必要があります。Google Play 開発者サービスの API を使用できるかどうかは、次の 2 種類の方法で確認できます。

  1. 他の API への接続に別の GoogleApiClient インスタンスを使用します。このインターフェースには、接続の成功または失敗をアプリに知らせるコールバックが含まれています。接続が失敗した場合、ConnectionResultAPI_UNAVAILABLE を示します。接続が失敗した場合の対処方法については、Google API へのアクセスをご覧ください。
  2. GoogleApiClient.BuilderaddApiIfAvailable() メソッドを使用して、必要な API に接続します。onConnected() コールバックが呼び出されたら、hasConnectedApi() メソッドを使用して、リクエストされた各 API が適切に接続されていることを確認します。

中国でアプリを配信する

中国向け Wear OS のユーザーに効果的にリーチするために、以下のサードパーティの Wear OS アプリストアを通じてアプリを配信できます。