FCM によるプッシュ通知
FCM によるプッシュ通知を利用する場合、Kii Cloud への設定のほか、FCM の設定やそれに合わせたビルド環境の整備が必要になります。
FCM の技術的な概要については、FCM の利用 をご覧ください。
導入作業
FCM によるプッシュ通知を利用するには、様々な設定が必要です。これらの設定作業や、プッシュ通知の実装のスケルトンとなるコードの実装は複雑なため、チュートリアルに従って準備することをおすすめします。
まずは、Android (FCM) プッシュ通知設定チュートリアル に従って、以下の作業を行います。開発プロジェクトへの Kii Cloud SDK の組み込みなど、実施済みの作業は省略できます。作業が完了したら、Thing-IF 向けの変更 を参照してください。
Firebase プロジェクトの登録:Firebase コンソールにプロジェクトを登録し、発行されたサーバーキーを GCM API キーとして開発者ポータルに登録します。
ビルド環境の設定:ビルド環境に、プッシュ通知で利用するライブラリーや権限を設定します。
プログラムの実装およびテスト:モバイルアプリにプッシュ通知の初期化処理とハンドラーを追加し、プッシュ通知を送信してみます。
チュートリアルでは、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
でのログイン処理は、モバイルアプリの仕様に合わせて書き換えてください。「初期化コードの実装」の サンプルコード では、オーナー となるユーザーを仮ユーザーで作成する方法を紹介します。ログイン画面を実装してオーナーユーザーでログインする場合は、上記のログイン処理をその画面の処理クラスに移動してください。