ページの先頭行へ戻る
Interstage Mobile Application Server V1.1.0 アプリケーション開発ガイド
FUJITSU Software

7.5.3 GCMプッシュ通知を利用するネイティブアプリケーションの開発

GCMプッシュ通知を利用するネイティブアプリケーションを開発するための事前準備

GCMプッシュ通知を利用するネイティブアプリケーションを開発するための事前準備として以下を行ってください。

  1. Google Developers Consoleでプロジェクトを作成してください。

  2. 作成したプロジェクトを選択し、GCMを有効にしてください。

  3. API Keyを作成してください。

  4. GCM対応のAndroidアプリを開発してください。

    注) GoogleCloudMessaging.register()に渡すSENDER_IDは、作成したプロジェクトの「Project Number」を指定。

  5. API keyをプッシュサーバに登録してください。

詳細は、Google Developers Consoleを参照してください。


GCMプッシュ通知を利用するネイティブアプリケーションの開発

GCMプッシュ通知を利用するネイティブアプリケーション向けのAPIはJavaで提供します。IMAPSプッシュ通知を利用するネイティブアプリケーション向けのAPIと同様に準備してください。


GCMプッシュ通知を利用するネイティブアプリケーションの開発には、以下の作業が必要です。

  1. Googleの公式HPに公開されている手順(http://developer.android.com/google/play-services/setup.html) に従い、下記の設定を実施

  2. Install the Google Play Services SDK

  3. Set Up a Project that Uses Google Play Services

  4. Android Support Library(revision 18以降のandroid-support-v4.jar)をアプリケーションプロジェクトのクラスパスに含める

  5. マニフェストファイルの修正

  6. プッシュクライアント設定ファイルの作成

  7. プッシュクライアント設定ファイル設定、プッシュハンドラ初期化処理の作成

  8. GooglePlay開発者サービスのインストール


1. マニフェストファイルの修正

2. プッシュクライアント設定ファイルの作成

プッシュハンドラに渡すパラメータを、プッシュクライアント設定ファイル(push.properties)に設定します。プッシュクライアント設定ファイルについては、「付録G プッシュクライアント設定ファイル」を参照してください。


3. プッシュクライアント設定ファイル設定、プッシュハンドラ初期化処理の作成

プッシュクライアント設定ファイル情報は、プッシュハンドラを利用する前に設定してください。

以下はプッシュクライアント設定ファイルの設定例です。

// プッシュサーバとの接続先をプッシュクライアント設定ファイルに設定する
push.ServerAddress=https://example.com/push/
push.SelfCertificate =  true
push.gcm.SenderID=1234567890        // SENDER_IDは、Googleの開発者向けのWebサイトで入手

以下はプッシュハンドラ初期化処理の例です。

// com.fujitsu.imaps.push.gcm.GcmRegisterによるプッシュハンドラの初期化
GcmRegister gcm = GcmRegister.getInstance(Activity.this);
gcm.register();

4.GooglePlay開発者サービスのインストール

GCMプッシュ通知を受信するためには、GooglePlay開発者サービス(4.4.52以降)が必要です。GooglePlay開発者サービスがインストールされていない場合、プッシュハンドラ初期化処理が失敗し、GCMのプッシュ通知を受信できません。GooglePlay開発者サービスはGoogle Playから入手できます。

注意

GooglePlay開発者サービスは、開発したアプリケーションを実行するAndroidへインストールする必要があります。

Export Android Applicationを行う場合

Export Android Applicationを行う場合は、Eclipseで以下の設定をおこないます。

  1. Window → Preferences

  2. Androidを展開し、Lint Errorを選択します

  3. Lint Error Checking Run full error check when exporting app and abort if fatal erros are foundのチェックを外します

注意

上記は、全てのプロジェクトに反映されます。パッケージング後は、必要に応じて設定を元に戻してください。

ログ出力を行う場合、「7.5.5 ログ出力のカスタマイズ」を参照してください。

認証の設定は、「7.5.6 認証クラスの定義」を参照してください。

拡張データを指定する場合は、「7.5.7 拡張データの指定」の指定を参照してください。

エラー通知受け取りを行う場合、「7.5.9 GCMプッシュの処理結果受け取り」を参照してください。


参考

GCMプッシュハンドラ初期化処理(GcmRegister.register)では、GCMとの通信とIMAPSサーバとの通信を伴います。そのため、開発中に以下の環境でGCMプッシュの動作確認を行いたい場合、

・IMAPSサーバがイントラネットに配置されており、イントラネット内WiFiで接続する環境

・さらに、イントラネット内からGCMへのアクセスが(ファイアウォール等で)遮断される環境

開発中の動作確認用の定義のpush.ServerConnectRetryCountおよびpush.ServerConnectRetryWaitを設定いただくことで、クライアントアプリケーション開発時におけるRegistrationID登録の確認が容易になります。

以下の方法で設定が可能です。

<手順>

1.プッシュクライアント設定ファイルのpush.ServerConnectRetryCountおよびpush.ServerConnectRetryWaitに任意の値を指定します。

2.Android端末のWiFiを無効にし、クライアントアプリケーションから、GCMプッシュハンドラ初期化処理(GcmRegister.register)を実行します。

3.Android端末のWiFiを有効にします

手順1の設定に従い、GCMから取得したregistrationIDがIMAPSサーバに登録されます。

注意

push.ServerConnectRetryCountおよびpush.ServerConnectRetryWaitは開発中の動作確認用として提供しています。運用向け環境では指定しないでください。