LoginSignup
4
5

More than 5 years have passed since last update.

「Android版」プッシュ通知5分ですぐ試せるサンプル

Posted at

【Android】プッシュ通知機能!

画像1

概要

  • ニフティクラウドmobile backendのプッシュ通知機能は、Googleが提供しているCloud Messaging(以下、GCM)と連携することで、通知の配信を行っています
  • Androidアプリでプッシュ通知を受信するまでの設定は以下のような流れとなっています
    • GCMの設定とAPIキーの取得
    • ニフティクラウド mobile backendでの設定
    • アプリでの設定
  • 詳しい設定内容はプッシュ通知(Android)を参照ください

ニフティクラウドmobile backendって何??

スマートフォンアプリのバックエンド機能(プッシュ通知・データストア・会員管理・ファイルストア・SNS連携・位置情報検索・スクリプト)が開発不要、しかも基本無料(注1)で使えるクラウドサービス!今回はデータストアを体験します

注1:詳しくはこちらをご覧ください

画像2

動作環境

  • Windows 7 Professional
  • Android Studio v2.1.2 (※2016/06 時点での最新バージョン)
  • Android ver 4x,5x

※上記内容で動作確認をしています

手順

0.プッシュ通知機能使うための準備

  • Google Cloud Platform にログインします
  • GCMを利用するためプロジェクトを作成し、APIキー(認証用の鍵)を発行します

画像a2

画像a3

画像a4

  • プロジェクトコードの確認をします

画像a5

  • GCMの有効化の設定をします

画像a6

  • 準備は以上です

1. ニフティクラウドmobile backendの会員登録とログイン→アプリ作成

  • 上記リンクから会員登録(無料)をします登録ができたらログインをすると下図のように「アプリの新規作成」画面が出るのでアプリを作成します

画像3

  • アプリ作成されると下図のような画面になります
  • この2種類のAPIキー(アプリケーションキーとクライアントキー)は先ほどインポートしたAndroidStudioで作成するAndroidアプリにニフティクラウドmobile backendの紐付けるため、あとで使います

画像4

  • 動作確認後installationクラス(端末情報)が保存される場所も確認しておきましょう

画像5

  • ダッシュボードからアプリ設定→プッシュ通知の設定を行う
    • プッシュ通知の許可するを設定し、保存します
    • Google Developer Consoleで取得したAPIキーを設定し、保存します

画像6

2. GitHubからサンプルプロジェクトのダウンロード

  • プロジェクトのGithubページから「Clone or download」>「Download ZIP」をクリックします
  • プロジェクトを解凍します

3. AndroidStudioでアプリを起動

  • AndroidStudioを開き、解凍したプロジェクトを選択します

画像7

  • プロジェクトを開きます

画像8

4. APIキーの設定

画像9

  • それぞれYOUR_APPLICATION_KEYYOUR_CLIENT_KEYの部分を書き換えます
    • このとき、ダブルクォーテーション(")を消さないように注意してください!

5. Androidのsender IDキーの設定

  • GCMから作成されたプロジェクトの後につく番号(#以降数字)が、sender IDです
  • MainActivity.javaを編集します

画像10

  • ANDROID_SENDER_IDの部分を書き換えます
    • このとき、ダブルクォーテーション(")を消さないように注意してください!

6. 動作確認

  • インストールしたアプリを起動します
    • プッシュ通知の許可を求めるアラートが出たら、必ず許可してください!

画像11

  • 起動されたらこの時点でAndroid端末はレジスタレーションIDが取得されます
  • ニフティクラウドmobile backendのダッシュボードから「データストア (installationクラス(端末情報))」を確認してみましょう!

画像12

  • 端末側で起動したアプリは一度閉じておきます

7. プッシュ通知を送りましょう!

  • いよいよです!実際にプッシュ通知を送ってみましょう!
  • ニフティクラウドmobile backendのダッシュボードで「プッシュ通知」>「+新しいプッシュ通知」をクリックします
  • プッシュ通知のフォームが開かれます
  • 必要な項目を入力してプッシュ通知を作成します

画像13

  • Android端末からプッシュ通知を確認しましょう!
  • 少し待つとプッシュ通知が届きます!

画像14

  • ダッシュボードからのプッシュ通知結果も確認する

画像15

解説

サンプルプロジェクトに実装済みの内容のご紹介

SDKのインポートと初期設定

ロジック

  • 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);
    }

参考

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5