受信したプッシュ通知をタップすると自動的に画像が表示されるな写真共有カメラアプリを作っていきます。Servicesを設定する方法なんかも書いてあります。backend](http://mb.cloud.nifty.com/)のプッシュ機能を使っていきます。これを利用すると、プッシュ通知のためにサーバを立てたり、GCMやAPNsとの連携を自分で作ったりしなくていいので、簡単にプッシュ通知を実装できます。backendのプッシュ通知にはリッチプッシュ機能というものがあり、プッシュ通知をタップすると指定したURLに自動でアクセスするように設定することができます。今回はこの機能を利用していきます。Console](https://console.developers.google.com/)でのAPIkey取得(省略)それぞれ詳細は省略しますが、3は以下のドキュメントがわかりやすいです。number)も後で使うので、メモ帳にでもコピペしておくと楽です。(プロジェクト番号はOverview画面の一番上にある数字だけの方です。アプリ作成アプリは以下のような流れで作成します。撮影時にプッシュ通知を送信する1,2については[前回の記事](http://qiita.com/heppoko_dev/items/e2dc82d766c2804de391)で作成したものをそのまま使うので、ここでは省略します。Serviceと連携する必要があります。Studioでは以下のようにしてプロジェクトに設定します。(もちろん[公式ドキュメント(英語)](https://developers.google.com/android/guides/setup)を参考にしてセットアップしていただいても大丈夫です。dependancyからplay-serviceを選択して「OK」これで登録されます。(しばらくライブラリの連携でぐるぐる動きます。Files」ボタンを押すと動くようになります。(アイコンバーのデバイスマネージャーの左隣にある丸と下矢印のようなマークです。プッシュ通知の受信端末情報を登録するプッシュ通知を受け取るためには、端末の情報を登録する必要があるので、その部分を実装していきます。公式のドキュメントがあるので、主にこちらを参照してください。前回同様最終系のコードを最後にまとめて掲載するので、分かりにくい場合はそちらを見ながらやってみてください。backend](http://mb.cloud.nifty.com/doc/current/tutorial/android_push.html)この段階では「Push通知を有効にする」の項目までやればOKです。backendのAPIキー追加」は既に前回終わっているので不要です。MainActivity.javaのonCreateに端末情報登録のコードを追加の3つだけです。[「Push通知を有効にする」](http://mb.cloud.nifty.com/doc/current/tutorial/android_push.html#Push通知を有効にする)で「SENDER_ID」を置き換え忘れないように注意してください。Consoleで取得したプロジェクト番号です。)余裕があれば「ダッシュボードからプッシュ通知を送信する」でプッシュ通知が届くか動作確認してみてください。この時点ではタップしても何も起こりません。リッチプッシュを動かすためのカスタムレシーバーを作るプッシュ通知をタップしたときアクションを実装していきます。こちらも公式ドキュメントを基に実装していきますが、少し情報が足りない部分があるので、補足していきます。AndroidManifest.xmlに以下の設定を追加します。先ほど追加したreceiverタグとはまた別物なので、その下にでも追加してください。/></intent-filter>```続いてカスタムレシーバーを作成します。MainActivity.javaがあるパッケージ名のフォルダを右クリック->New->JavaClassを選択し「MyCustomReceiver.java」を作成します。以下のコードをコピペしてください。エラー処理}}}```次にMainActivity.javaに以下の二つのメソッドを追加します。onDestroy(){super.onDestroy();NCMBPush.closeRichPush();}```これでリッチプッシュが受信可能になるので、ダッシュボードからURLを入力したプッシュ通知を送信してみてください。届いたプッシュ通知をタップするとアプリが起動して、webviewで指定したURLのページが表示されるはずです。撮影時にプッシュ通知を送信するアプリからプッシュ通知を送信する部分を実装していきます。file.saveInBackgroundのコールバック関数の中(今回のコードではdoneメソッド)に以下のコードを追加します。{//エラー処理}push.setRichUrl(url);push.sendInBackground();```また、以下の2点について設定を行います。今回は画像を共有する手段としてmBaaSの公開ファイル機能を使いました。これを利用することで、URLからファイルにアクセスできるようになります。この機能を使うためには、**ダッシュボードの「アプリ設定」->「データ・ファイルストア」で「HTTPSでの取得」を有効にして保存ボタンを押してください**。クラスのパーミッション画面が出た場合には、全員に対して読み込み権限を許可に設定してください。→[ダッシュボードの使い方:ファイルストア](http://mb.cloud.nifty.com/doc/current/dashboard/filestore.html#ファイルクラスのパーミッションを設定する)公開ファイル機能でファイルにアクセスするURLは以下のようになります。https://mb.api.cloud.nifty.com/2013-09-01/applications/アプリケーションID/publicFiles/ファイル名ここでアプリケーションIDとは、ダッシュボードを開いてる時に/applications/の後ろについている文字列です。**上のコードの中の「YOUR_APPLICATION_ID」を自分のアプリケーションIDに置き換えてください。**以上で実装完了です。アプリで写真を撮影したらプッシュ通知が届くはずです。注意バグがあってアプリが起動中の状態でプッシュ通知をタップしても画像が表示されないようです。一台の端末で試す場合は一度アプリを終了してからプッシュ通知をタップしてください。カメラアプリそのものの部分をちゃんと作っていないので、設定によっては表示される画像が小さい、90度回転しているなどの不具合があるかもしれません。時間が出来たら直したいですが、気になる方がいたら直してコメントいただけると大変助かります。(そもそもCameraクラスが非推奨だったりしますが。まとめ今回はmBaaSのリッチプッシュ通知機能を使って画像を共有するアプリを作りました。このままだと写真を撮ったら必ずプッシュ通知が送られてしまいますが、もう少し作り込めば共有するかどうかを選択することもできます。[会員管理機能](http://mb.cloud.nifty.com/doc/current/fnguide/user.html)と組み合わせれば、グループや相手を指定して共有することも可能です。プッシュの出し分けが簡単にできるのもmBaaSのメリットの一つですね。余裕があれば次回はその辺りまで作り込んでみたいと思います。/></intent-filter></receiver></application></manifest>```今回はここまで。