FCM によるプッシュ通知

FCM によるプッシュ通知を利用する場合、Kii Cloud への設定のほか、FCM の設定やそれに合わせたビルド環境の整備が必要になります。

FCM の技術的な概要については、FCM の利用 をご覧ください。

FCM を使ったプッシュ通知は、サーバー設置場所を「中国(Site.CN3)」に設定した場合利用できません。

導入作業

FCM によるプッシュ通知を利用するには、様々な設定が必要です。これらの設定作業や、プッシュ通知の実装のスケルトンとなるコードの実装は複雑なため、チュートリアルに従って準備することをおすすめします。

まずは、Android (FCM) プッシュ通知設定チュートリアル に従って、以下の作業を行います。開発プロジェクトへの Kii Cloud SDK の組み込みなど、実施済みの作業は省略できます。作業が完了したら、Thing-IF 向けの変更 を参照してください。

  1. Firebase プロジェクトの登録:Firebase コンソールにプロジェクトを登録し、発行されたサーバーキーを GCM API キーとして開発者ポータルに登録します。

  2. ビルド環境の設定:ビルド環境に、プッシュ通知で利用するライブラリーや権限を設定します。

  3. プログラムの実装およびテスト:モバイルアプリにプッシュ通知の初期化処理とハンドラーを追加し、プッシュ通知を送信してみます。

チュートリアルでは、Kii Cloud SDK 用の設定を行いますが、そのまま実行してとりあえずは環境を構築してください。

Thing-IF 向けの変更

チュートリアルでの動作が確認できたら、Thing-IF SDK の実装では不要な部分を削除します。Kii Cloud SDK で案内しているデバイスのインストール操作は Thing-IF SDK では別の方法で実行するため、Kii Cloud SDK の API の代わりに Thing-IF SDK の API を呼び出すようにします。

MainActivity の実装から、KiiUser.pushInstallation の呼び出し部分および 1 行上の development の宣言を削除します。修正後は、以下のようになります。

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  ......
  if (!checkPlayServices()) {
    Toast.makeText(MainActivity.this, "This application needs Google Play services", Toast.LENGTH_LONG).show();
    return;
  }

  String username = "user1";
  String password = "123ABC";
  KiiUser.logIn(new KiiUserCallBack() {
    @Override
    public void onLoginCompleted(int token, KiiUser user, Exception exception) {
      if (exception != null) {
        Toast.makeText(MainActivity.this, "Error login user:" + exception.getMessage(), Toast.LENGTH_LONG).show();
        return;
      }
      Toast.makeText(MainActivity.this, "Succeeded to login", Toast.LENGTH_LONG).show();

      String fcmToken = FirebaseInstanceId.getInstance().getToken();
      if (fcmToken == null) {
        Toast.makeText(MainActivity.this, "Error FCM is not ready", Toast.LENGTH_LONG).show();
        return;
      }
    }
  }, username, password);
}

ここでは、一旦、上記のままにしておいてください。後で、削除した API の代わりに Thing-IF 用のプッシュ通知初期化 API を埋め込みます。詳しくは、「初期化コードの実装」の デバイスのインストール をご覧ください。

また、テストで使用した user1 でのログイン処理は、モバイルアプリの仕様に合わせて書き換えてください。「初期化コードの実装」の サンプルコード では、オーナー となるユーザーを仮ユーザーで作成する方法を紹介します。ログイン画面を実装してオーナーユーザーでログインする場合は、上記のログイン処理をその画面の処理クラスに移動してください。