【Android】プッシュ通知機能!
概要
- ニフティクラウドmobile backendのプッシュ通知機能は、Googleが提供しているCloud Messaging(以下、GCM)と連携することで、通知の配信を行っています
- Androidアプリでプッシュ通知を受信するまでの設定は以下のような流れとなっています
- GCMの設定とAPIキーの取得
- ニフティクラウド mobile backendでの設定
- アプリでの設定
- 詳しい設定内容はプッシュ通知(Android)を参照ください
ニフティクラウドmobile backendって何??
スマートフォンアプリのバックエンド機能(プッシュ通知・データストア・会員管理・ファイルストア・SNS連携・位置情報検索・スクリプト)が開発不要、しかも基本無料(注1)で使えるクラウドサービス!今回はデータストアを体験します
注1:詳しくはこちらをご覧ください
動作環境
- Windows 7 Professional
- Android Studio v2.1.2 (※2016/06 時点での最新バージョン)
- Android ver 4x,5x
※上記内容で動作確認をしています
手順
0.プッシュ通知機能使うための準備
- Google Cloud Platform にログインします
- GCMを利用するためプロジェクトを作成し、APIキー(認証用の鍵)を発行します
- プロジェクトコードの確認をします
- GCMの有効化の設定をします
- 準備は以上です
1. ニフティクラウドmobile backendの会員登録とログイン→アプリ作成
- 上記リンクから会員登録(無料)をします登録ができたらログインをすると下図のように「アプリの新規作成」画面が出るのでアプリを作成します
- アプリ作成されると下図のような画面になります
- この2種類のAPIキー(アプリケーションキーとクライアントキー)は先ほどインポートしたAndroidStudioで作成するAndroidアプリにニフティクラウドmobile backendの紐付けるため、あとで使います
- 動作確認後installationクラス(端末情報)が保存される場所も確認しておきましょう
- ダッシュボードからアプリ設定→プッシュ通知の設定を行う
- プッシュ通知の許可するを設定し、保存します
- Google Developer Consoleで取得したAPIキーを設定し、保存します
2. GitHubからサンプルプロジェクトのダウンロード
- プロジェクトのGithubページから「Clone or download」>「Download ZIP」をクリックします
- プロジェクトを解凍します
3. AndroidStudioでアプリを起動
- AndroidStudioを開き、解凍したプロジェクトを選択します
- プロジェクトを開きます
4. APIキーの設定
-
MainActivity.java
を編集します - 先程ニフティクラウドmobile backendのダッシュボード上で確認したAPIキーを貼り付けます
- それぞれ
YOUR_APPLICATION_KEY
とYOUR_CLIENT_KEY
の部分を書き換えます- このとき、ダブルクォーテーション(
"
)を消さないように注意してください!
- このとき、ダブルクォーテーション(
5. Androidのsender IDキーの設定
- GCMから作成されたプロジェクトの後につく番号(#以降数字)が、sender IDです
-
MainActivity.java
を編集します
-
ANDROID_SENDER_ID
の部分を書き換えます- このとき、ダブルクォーテーション(
"
)を消さないように注意してください!
- このとき、ダブルクォーテーション(
6. 動作確認
- インストールしたアプリを起動します
- プッシュ通知の許可を求めるアラートが出たら、必ず許可してください!
- 起動されたらこの時点でAndroid端末はレジスタレーションIDが取得されます
- ニフティクラウドmobile backendのダッシュボードから「データストア (installationクラス(端末情報))」を確認してみましょう!
- 端末側で起動したアプリは一度閉じておきます
7. プッシュ通知を送りましょう!
- いよいよです!実際にプッシュ通知を送ってみましょう!
- ニフティクラウドmobile backendのダッシュボードで「プッシュ通知」>「+新しいプッシュ通知」をクリックします
- プッシュ通知のフォームが開かれます
- 必要な項目を入力してプッシュ通知を作成します
- Android端末からプッシュ通知を確認しましょう!
- 少し待つとプッシュ通知が届きます!
- ダッシュボードからのプッシュ通知結果も確認する
解説
サンプルプロジェクトに実装済みの内容のご紹介
SDKのインポートと初期設定
- ニフティクラウドmobile backend のドキュメント(クイックスタート)をご用意していますので、ご活用ください
ロジック
-
activity_main.xml
でデザインを作成し、MainActivity.java
にロジックを書いています - installationクラス(端末情報)が保存される処理は以下のように記述されます
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//**************** APIキーの設定とSDKの初期化 **********************
NCMB.initialize(this, "YOUR_APPLICATION_KEY", "YOUR_CLIENT_KEY");
final NCMBInstallation installation = NCMBInstallation.getCurrentInstallation();
//GCMからRegistrationIdを取得しinstallationに設定する
installation.getRegistrationIdInBackground("ANDROID_SENDER_ID", new DoneCallback() {
//installation.getRegistrationIdInBackground("senderId", new DoneCallback() {
@Override
public void done(NCMBException e) {
if (e == null) {
installation.saveInBackground(new DoneCallback() {
@Override
public void done(NCMBException e) {
if (e == null) {
//保存成功
} else if (NCMBException.DUPLICATE_VALUE.equals(e.getCode())) {
//保存失敗 : registrationID重複
updateInstallation(installation);
} else {
//保存失敗 : その他
}
}
});
} else {
//ID取得失敗
}
}
});
setContentView(R.layout.activity_main);
}
参考
- ニフティクラウドmobile backend のドキュメント(プッシュ通知(Android))をご用意していますので、ご活用ください