© 2014 IBM Corpora/on
IBM Mobile Push Notification導⼊入ガイド
(Android)
© 2014 IBM Corpora/on 2
ご注意
この資料料は⽇日本アイ・ビー・エム株式会社および⽇日本アイ・ビー・エム システムズ・エンジニアリング株 式会社の正式なレビューを受けておりません。
資料料の内容には正確を期するよう注意しておりますが、この資料料の内容は2014年年09⽉月現在の情報であり、
製品の新しいリリース、修正などによって動作/仕様が変わる可能性があります。
当資料料は、資料料内で説明されている製品の仕様を保証するものではありません。従って、この情報の利利⽤用ま たはこれらの技法の実施はひとえに使⽤用者の責任において為されるものであり、資料料の内容によって受けた いかなる被害に関しても⼀一切切の補償をするものではありません。
「Google」「Googleロゴ」、「Google Play」「Google Playロゴ」「Android」「Androidロゴ」は、
Google Inc.の商標または登録商標です。
また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標 である場合があります。現時点でのIBMの商標リストについてはhttp://www.ibm.com/legal/
copytrade.shtmlをご覧ください。
© 2014 IBM Corpora/on 3
⽬目次
1. はじめに
2. サンプルアプリ(Android)導⼊入⼿手順
3. 既存のアプリへのSDKの組み込み⼿手順
© 2014 IBM Corpora/on 4
1. はじめに
© 2014 IBM Corpora/on 5
はじめに
§
当資料料は、IBM Mobile Push Notificationの機能を確認できるように以下の
⼿手順を⽰示したものです。
-‐‑‒ Android⽤用SDKに同梱されているサンプル・アプリケーションの導⼊入⼿手順 -‐‑‒ 既存アプリにAndroid⽤用SDKを組み込む⼿手順
§
基本的には以下のURLに記載されている内容ベースに、画⾯面キャプチャを交 えて⼿手順化したものです。
-‐‑‒
http://developer.xtify.com/display/sdk/Getting+Started+with +Google+Cloud+Messaging§
⼿手順を実施するには、以下の物が必要となります。
-‐‑‒
Android SDK, ADT(Android Developer Tools) が導⼊入されたEclipseおよ びWebブラウザ
-‐‑‒
Googleアカウント -‐‑‒
Xtify ID
-‐‑‒
Androidデバイス(実機での確認が必要な場合)
© 2014 IBM Corpora/on 6
はじめに(続き)
§
以下のことは範囲外としています。
-‐‑‒
Googleアカウントの取得⽅方法 -‐‑‒
XtifyのIDの取得⽅方法
§
⽤用語について
-‐‑‒
IBMは Xtify を2013/10に買収し、Xtify の Mobile Pushの機能を「IBM
Mobile Push Notification」として提供しています。わかりやすいよう資料料上 ではXtifyという表現も残しております。
§
当資料料のWebサイトの画⾯面キャプチャは、2014/09時点の物であり、それぞれ
のデザイン変更更により変更更されることがありますのでご留留意ください。
© 2014 IBM Corpora/on 7
2. サンプルアプリ(Android)導⼊入⼿手順
© 2014 IBM Corpora/on 8
全体の流流れ
SDK
のダウンロード
IBM Push Notification SDKダウンロードサイトよりAndroid向けSDKをダウンロード
新規
Google APIプロジェクトの作成
https://code.google.com/apis/consoleにて、ProjectのAPIs & Credentials設定
Xtify
コンソールから
Androidアプリを登録
http://console.xtify.comでのアプリケーション登録
開発環境の準備(必要な⽅方のみ)
ADTのインストール
サンプルアプリの
BuildADTでのサンプルアプリのBuild
アプリ稼動確認⽤用エミュレーター のセットアップ
ADTでのAVD作成
通知のテスト(エミュレーター使
Xtifyのコンソールからテスト通知
⽤用)
通知のテスト(実機使⽤用)
Xtifyのコンソールからテスト通知
© 2014 IBM Corpora/on 9
SDKのダウンロード
§ 以下リンクよりAndroid⽤用のSDKをダウンロードします。
-‐‑‒
https://developer.ibm.com/push/docs/ibm-‐‑‒mobile-‐‑‒push-‐‑‒notification/sdks/download-‐‑‒ibm-‐‑‒push-‐‑‒notification-‐‑‒sdk-‐‑‒android/
© 2014 IBM Corpora/on 10
新規Google API プロジェクトの作成
§ 以下のGoogle APIs Console にログインします。
-‐‑‒
https://code.google.com/apis/console/§ API Projectを作成します。
-‐‑‒
はじめてAPI Projectを作成する場合、Projectの作成を促すメッセー ジが表⽰示されますので、メッセージにしたがって作成ください
-‐‑‒
既にProjectを作成したことがある場合、Dashboardの画⾯面が初期表
⽰示されますので、左上の”Projects”のリンクより、新たにProjectを作
成ください
© 2014 IBM Corpora/on 11
新規Google API プロジェクトの作成
§ “APIS & AUTH” > “APIs” のメニューをクリック
し、”Google Cloud Messaging for Android” を有効にして ください。
© 2014 IBM Corpora/on 12
新規Google API プロジェクトの作成
§ 続いて、 “APIS & AUTH” > ”Credentials” のメニューをク リックし、”Create new Key” > “Server key” よりキーを 作成します。IPアドレスの制約は何も指定せずに、”Create”
をクリックします。
© 2014 IBM Corpora/on 13
新規Google API プロジェクトの作成
§ Keyが⽣生成されます。
-‐‑‒
このAPI keyの情報は、後のXtifyコンソールでのAndroidアプリの登 録⼿手順にて使⽤用します
-‐‑‒
※開発⽤用と本番⽤用のProjectは分けて作成することをお勧めいたします
© 2014 IBM Corpora/on 14
新規Google API プロジェクトの作成
§ “プロジェクト名” > “Overview”にアクセスし、Project Numberを確認しておきます。
-‐‑‒
このProject Numberは、後のサンプルアプリのBuild⼿手順で使⽤用しま
す
© 2014 IBM Corpora/on 15
XtifyコンソールからAndroidアプリを登録
§ 以下にログインします。
-‐‑‒
https://console.xtify.com/•
ログインするにはXtify IDが必要です
-‐‑‒
“Add or Manage your Applications” のリンクをクリックし、“ADD
NEW APPLICATION” をクリックします。
© 2014 IBM Corpora/on 16
XtifyコンソールからAndroidアプリを登録
§ 以下の必須項⽬目を⼊入⼒力力後、”SAVE”をクリックします。
-‐‑‒
Application Name: 任意のアプリケーション名
-‐‑‒
Application Key Type: ”Development / Testing” を選択(サンプ ルのため)
-‐‑‒
Application OS: “Android GCM” を選択
-‐‑‒
Google API Key: 先の⼿手順で確認したGoogleのAPI Keyの値を指
定
© 2014 IBM Corpora/on 17
XtifyコンソールからAndroidアプリを登録
§ アプリケーションが登録されます。
-‐‑‒
このApplication keyの情報を、後のサンプルアプリのBuild⼿手順で使
⽤用します
© 2014 IBM Corpora/on 18
開発環境の準備(必要な⽅方のみ)
§ 以下はAndroidアプリケーション開発ツールであるAndroid Development Tools (ADT) の導⼊入⼿手順です
-‐‑‒
既に開発環境をお持ちの⽅方はスキップしてください
§ Android SDKを以下よりダウンロードし、インストールしま す。
-‐‑‒
http://developer.android.com/sdk/index.html-‐‑‒
EclipseにADT Pluginをインストールする⼿手順もありますが、ここで
はEclipseも⼀一緒にインストールする⼿手順を⽰示します
© 2014 IBM Corpora/on 19
開発環境の準備(必要な⽅方のみ)
§
ダウンロードしたファイルを展開し、<展開後のフォルダ>\eclipse
\eclipse.exe を実⾏行行します。
§
任意のワークスペースを指定して、Eclipseを開きます。
-‐‑‒
(必要に応じて)最新のADTでは、Windowメニュー内に Android SDK Manager, Android Virtual Device Manager のメニューが表⽰示されません。これらはSDKをイン ストールしたフォルダから個別に直接起動することも可能ですが、以降降の操作の利利便便性 向上のため、Windowメニューからの起動が可能なように設定を変更更しておきます。
•
Window > Customize Perspective を開く
•
Command Groups Availability タブを開き、Android SDK and AVD Manager に
チェックを⼊入れる
© 2014 IBM Corpora/on 20
サンプルアプリのBuild
§
ダウンロードしたSDKに含まれるサンプルアプリをADTにインポートしま す。 -‐‑‒
File > Import をクリックしImportメニューを開く
-‐‑‒
Android > Existing Android Code Into Workspace を選択し、Next をクリックする -‐‑‒
Root Directoryで、<SDKの展開先>\Samples を指定し、”Xtify Rich Samples” に
チェックを⼊入れ Finish をクリックする
© 2014 IBM Corpora/on 21
サンプルアプリのBuild
§ MainActivity > src > com.xtify.samples.gcm >
MainActivity.java を開き、以下の定数を設定します。
-‐‑‒
“XTIFY_̲APP_̲KEY” の”YOUR_̲XTIFY_̲APP_̲KEY” の箇所を、先の⼿手 順(p17)で確認したIBM Mobile Push NotificationのappKeyに変更更 -‐‑‒
“PROJECT_̲NUM” の “YOUR_̲PROJECT_̲NUM” の箇所を、先の⼿手順
(p14)で確認したGoogle API の Project Numberに変更更
© 2014 IBM Corpora/on 22
アプリ稼動確認⽤用エミュレーターのセットアップ
§
プッシュ通知⽤用アプリのテストを⾏行行うためのエミュレーターをセット アップします。
-‐‑‒
※プッシュ通知の確認を⾏行行うためには、Google Messaging APIsを ベースとしたAndroid Virtual Device (AVD) が必要です。以下の⼿手 順に沿って、AVDが適切切に構成されていることを確認ください。
§
Window > Android SDK Manager より、サポートされるバージョン
の“Google APIs”が導⼊入済みであることを確認します。(導⼊入されてな
い場合、対象の項⽬目のチェックをONにし、導⼊入を実施ください。)
© 2014 IBM Corpora/on 23
アプリ稼動確認⽤用エミュレーターのセットアップ
§ Windos > Android Virtual Device Manager > Create よ り、新規にAVDを作成します。
-‐‑‒
Target では、”Google APIs” を選択ください
-‐‑‒
その他の項⽬目は、テストしたいデバイス情報に沿った任意の情報を設
定ください
© 2014 IBM Corpora/on 24
アプリ稼動確認⽤用エミュレーターのセットアップ
§ 作成したAVDを選択し、StartボタンよりAVDを起動します。
© 2014 IBM Corpora/on 25
【参考】AVDの起動エラーへの対処法
§ IntelのCPUを選択した際、AVDの起動時に以下のようなエラーが表⽰示される場合があります。
§ 対処法は以下の通りです。
1. Android SDK Manager にて、Intel x86 Emulator Accelerator (HAXM Installer) を導⼊入 2. <Android SDKの展開先>\extras\intel\Hardware_̲Acceleated_̲Execution_̲manager
\IntelHaxm.exe よりHAXMを導⼊入
• VT-‐‑‒x が無効な環境ではインストールに失敗するため、BIOSメニューよりVT-‐‑‒x を有効化した後 にインストールを実施ください
Starting emulator for AVD ‘xxxxxxxx' emulator: Failed to open the HAX device!
HAX is not working and emulator runs in emulation mode emulator: Open HAX device failed
1. 2.
© 2014 IBM Corpora/on 26
通知のテスト(エミュレーター使⽤用)
§
セットアップしたAVDにて、通知のテストを⾏行行います。
-‐‑‒
プロジェクトを右クリックし、Run As > Run Configurations… を選択します
-‐‑‒
Target タブにて、先ほどセットアップしたAVDを選択し、Run をクリックします
-‐‑‒
Xtifyのサンプル・アプリケーションが起動した状態にてAVDが起動されます
© 2014 IBM Corpora/on 27
通知のテスト(エミュレーター使⽤用)
§ GCMプッシュ通知を受け取るには、Googleアカウントに接 続する必要があるため、Setting > Accounts より、Google アカウントの追加を実施します。
© 2014 IBM Corpora/on 28
通知のテスト(エミュレーター使⽤用)
§ XtifyのPush Pointを使って通知のテスト を⾏行行います。
-‐‑‒
次のURLへアクセスしてください。
•
https://console.xtify.com/pages/push-‐‑‒point.html
-‐‑‒
値を⼊入⼒力力して、Send Push Notificationをク リックしてください。
§ AVDに指定した通知メッセージが表⽰示さ れれば成功です。
© 2014 IBM Corpora/on 29
通知のテスト(実機使⽤用)
§
Androidデバイスの実機にてテストを実施します。
§
ビルドしたAndroidアプリケーションを実機に配布す る⽅方法はいくつかありますが、今回は直接apkファイ ルをデバイスに転送してインストールを実施します。
-‐‑‒
事前にデバイス側で「設定」→「セキュリティ」→「提供元不不明 のアプリ」にチェックを⼊入れて有効化しておく必要があります。
この設定が無効になっていると、Android Market経由以外から apkファイルを端末にインストールできません。
-‐‑‒
apkファイルはプロジェクト直下のbinフォルダ下に⽣生成されます ので、そちらのファイルをデバイスへ転送しインストールくださ い。
§
その後のテスト⼿手順はエミュレーター使⽤用時と同様で す。 -‐‑‒
Googleアカウントを追加し、XtifyのPush Pointより通知のテス
トを実施ください。
© 2014 IBM Corpora/on 30
3. 既存のアプリへのSDKの組み込み⼿手順
© 2014 IBM Corpora/on 31
§
「アプリへ IBM Push Notification SDK を組み込み」以外の⼿手順はサンプルアプリのセッ トアップ⼿手順と同様です
-‐‑‒
以降降、「アプリへ IBM Push Notification SDK を組み込み」の⼿手順のみ記載します
全体の流流れ
SDK
のダウンロード
IBM Push Notification SDKダウンロードサイトよりAndroid向けSDKをダウンロード
新規
Google APIプロジェクトの作成
https://code.google.com/apis/consoleにて、ProjectのAPIs & Credentials設定
Xtify
コンソールから
Androidアプリを登録
http://console.xtify.comでのアプリケーション登録
アプリへ
IBM Push Notification SDKを組み込み
ADTでのサンプルアプリのBuild
アプリ稼動確認⽤用エミュレーター のセットアップ
ADTでのAVD作成
通知のテスト(エミュレーター使
Xtifyのコンソールからテスト通知
⽤用)
通知のテスト(実機使⽤用)
Xtifyのコンソールからテスト通知
© 2014 IBM Corpora/on 32
§ 既存のプロジェクトのlibsフォルダ(ない場合には作成する) に、IBM Push Notification SDK for Android のjarファイ ルをコピーします
-‐‑‒
jarファイルはダウンロードしたSDKのルートディレクトリにあります
•
jarファイル名はxtify-‐‑‒android-‐‑‒sdk-‐‑‒2.4.2.2.jar(2014/9⽉月時点)
jarファイルの配置
© 2014 IBM Corpora/on 33
jarファイルをライブラリに追加
§
プロジェクトを選択し、右クリックします
§
[Build Path]-‐‑‒[Configure Build Path]を選択します
§
[Libraries]タブを開き、[Add JARs]を選択します
§
さきの⼿手順でコピーしたjarファイルを選択し、[OK]を押します
© 2014 IBM Corpora/on 34
AndroidManifest.xmlの修正
§ AndroidManifest.xmlを開き、修正します
-‐‑‒
「minimum Android SDK」の項⽬目(下記)を編集または追記し、
バージョンを8とします
•
<uses-‐‑‒sdk android:minSdkVersion="8" />
Ø
The IBM Push Notification SDK for Android は8未満のバージョンで は動作しません
•
すでに設定されている場合はスキップします
© 2014 IBM Corpora/on 35
AndroidManifest.xmlの修正
§ AndroidManifest.xmlを開き、修正します(続き)
-‐‑‒
IBM Push Notification に必要なパーミッションを許可します -‐‑‒
下記のパーミッションを追記します
•
親の要素は”manifest”です
Ø
<manifest></manifest>内に記述します
•
[YOUR_̲APP_̲PACKAGE_̲NAME]はプロジェクトのパッケージ名で置き換 えます
-‐‑‒
もし通知からのアクションで電話をかける(Dial Action)を⾏行行う場合、
下記のパーミッションも追加します
<permission android:name="YOUR_̲APP_̲PACKAGE_̲NAME.permission.C2D_̲MESSAGE"
android:protectionLevel="signature" />
<uses-‐‑‒permission android:name="YOUR_̲APP_̲PACKAGE_̲NAME.permission.C2D_̲MESSAGE" />
<uses-‐‑‒permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-‐‑‒permission android:name="android.permission.INTERNET" />
<uses-‐‑‒permission android:name="android.permission.WAKE_̲LOCK" />
<uses-‐‑‒permission android:name="android.permission.RECEIVE_̲BOOT_̲COMPLETED" />
<uses-‐‑‒permission android:name="android.permission.CALL_̲PHONE" />
© 2014 IBM Corpora/on 36
AndroidManifest.xmlの修正
§ AndroidManifest.xmlを開き、修正します(続き)
-‐‑‒
IBM Push Notification に必要なアプリケーションコンポーネントを 追加します
-‐‑‒
次ページ以降降に掲載しているアプリケーションコンポーネントを追記 します •
親の要素は”application”です
Ø
<application></application>内に記述します
•
[YOUR_̲APP_̲PACKAGE_̲NAME]はプロジェクトのパッケージ名で置き換
えます
© 2014 IBM Corpora/on 37
AndroidManifest.xmlの修正
§ 追加するアプリケーションコンポーネント(次ページに続 く)
<provider
android:name="com.xtify.sdk.db.Provider"
android:authorities="YOUR_̲APP_̲PACKAGE_̲NAME.XTIFY_̲PROVIDER"
android:exported="false" />
<receiver android:name="com.xtify.sdk.c2dm.C2DMBroadcastReceiver" >
<intent-‐‑‒filter android:permission="com.google.android.c2dm.permission.SEND" >
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="YOUR_̲APP_̲PACKAGE_̲NAME" />
</intent-‐‑‒filter>
<intent-‐‑‒filter android:permission="com.google.android.c2dm.permission.SEND" >
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="YOUR_̲APP_̲PACKAGE_̲NAME" />
</intent-‐‑‒filter>
</receiver>
© 2014 IBM Corpora/on 38
AndroidManifest.xmlの修正
§ 追加するアプリケーションコンポーネント(続き)
<receiver android:name="com.xtify.sdk.NotifActionReceiver" />
<receiver android:name="com.xtify.sdk.wi.AlarmReceiver" >
<intent-‐‑‒filter>
<action android:name="android.intent.action.BOOT_̲COMPLETED" />
</intent-‐‑‒filter>
<intent-‐‑‒filter>
<action android:name="android.intent.action.TIMEZONE_̲CHANGED" />
</intent-‐‑‒filter>
<intent-‐‑‒filter>
<action android:name="android.intent.action.PACKAGE_̲REPLACED" />
<data android:scheme="package" />
</intent-‐‑‒filter>
</receiver>
<service android:name="com.xtify.sdk.location.LocationUpdateService" />
<service android:name="com.xtify.sdk.c2dm.C2DMIntentService" />
<service android:name="com.xtify.sdk.alarm.MetricsIntentService" />
<service android:name="com.xtify.sdk.alarm.TagIntentService" />
<service android:name="com.xtify.sdk.alarm.RegistrationIntentService" />
<service android:name="com.xtify.sdk.alarm.LocationIntentService" />
© 2014 IBM Corpora/on 39
Main Activityの修正
§ プロジェクトのMain Activity(アプリを開いたときに最初に 起動するアクティビティ)を編集します
-‐‑‒
下記をインポートします
import com.xtify.sdk.api.XtifySDK;
© 2014 IBM Corpora/on 40
Main Activityの修正
§ プロジェクトのMain Activityを編集します(続き)
-‐‑‒
Activity の onStart メソッドを追加または修正し、XtifySDK.start を 呼び出します
•
“YOUR_̲XTIFY_̲APP_̲KEY”はXtifyのAppKeyに(p17参
照)、”YOUR_̲PROJECT_̲NUM”はGoogle API Project Numberに置き換え ます(p13参照)
-‐‑‒
例例えば、下記のようなコードになります
public class MainActivity extends Activity {
private static final String XTIFY_̲APP_̲KEY = "1234567-‐‑‒abcd-‐‑‒efgh-‐‑‒ijkl-‐‑‒25d2389b0178";
private static final String PROJECT_̲NUM = "1234567890123";
@Override
protected void onStart() { super.onStart();
XtifySDK.start(getApplicationContext(), XTIFY_̲APP_̲KEY, PROJECT_̲NUM);
} }
final String XTIFY_̲APP_̲KEY = "YOUR_̲XTIFY_̲APP_̲KEY";
final String PROJECT_̲NUM = "YOUR_̲PROJECT_̲NUM"; // This is the Google Project Number XtifySDK.start(getApplicationContext(), XTIFY_̲APP_̲KEY, PROJECT_̲NUM);
© 2014 IBM Corpora/on 41
アプリケーションのテスト
§ サンプルの⼿手順の「通知のテスト」を参照ください
-‐‑‒
アプリケーションは外部ストレージカードに保存することは推奨され ていません。内部ストレージにインストールする事が推奨されていま す •
詳細はGoogleの下記のサイトを参照ください
Ø
App Install Location
Ø
http://developer.android.com/guide/topics/data/install-‐‑‒
location.html
© 2014 IBM Corpora/on 42