マニフェストの設定
AndroidManifest.xml を編集し、プッシュ通知に必要な権限と、受信ハンドラーを設定します。
下記の XML ファイル中、3 箇所にある <!-- *** add following lines *** -->
から、<!-- *** up to this point *** -->
までの部分を AndroidManifest.xml に追加します。
1 つ目は、プッシュ通知を受け取るために必要な権限を設定する部分です。権限が設定されていない場合は追加します(
android.permission.INTERNET
も Kii Cloud SDK の利用に必要です)。2 つ目は、受け取ったプッシュメッセージの受信ハンドラーとなる BroadcastReceiver の設定です。
KiiPushBroadcastReceiver
は最終的にプッシュ通知を受け取るアプリ内のクラス名で、設定終了後に実装する必要があります。3 つ目は、このアプリケーションで利用する JPush のアプリケーションキーの設定です。"YOURJPUSHAPP_KEY" の部分を取得した JPush の AppKey と置き換えてください。
いずれの部分でも、必要に応じてパッケージ名「com.kii.sample.push」を書き換えてください。追加する箇所では、合計 7 箇所の修正が必要です。
また、JPush の AppKey(1 箇所)も書き換えてください。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kii.sample.push"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.INTERNET" />
<!-- *** add following lines *** -->
<permission android:name="com.kii.sample.push.permission.JPUSH_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.kii.sample.push.permission.JPUSH_MESSAGE" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<!-- *** up to this point *** -->
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.kii.sample.push.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- *** add following lines *** -->
<activity
android:name="cn.jpush.android.ui.PushActivity"
android:configChanges="orientation|keyboardHidden"
android:exported="false">
<intent-filter>
<action android:name="cn.jpush.android.ui.PushActivity" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="com.kii.sample.push" />
</intent-filter>
</activity>
<service
android:name="cn.jpush.android.service.DownloadService"
android:enabled="true"
android:exported="false" >
</service>
<service android:name="cn.jpush.android.service.PushService" android:enabled="true" android:exported="false" >
<intent-filter>
<action android:name="cn.jpush.android.intent.REGISTER" />
<action android:name="cn.jpush.android.intent.REPORT" />
<action android:name="cn.jpush.android.intent.PushService" />
<action android:name="cn.jpush.android.intent.PUSH_TIME" />
</intent-filter>
</service>
<service
android:name="cn.jpush.android.service.DaemonService"
android:enabled="true"
android:exported="true">
<intent-filter >
<action android:name="cn.jpush.android.intent.DaemonService" />
<category android:name="com.kii.sample.push"/>
</intent-filter>
</service>
<receiver android:name="cn.jpush.android.service.PushReceiver" android:enabled="true" android:exported="false" >
<intent-filter android:priority="1000" >
<action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />
<category android:name="com.kii.sample.push" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" />
</intent-filter>
</receiver>
<receiver android:name="cn.jpush.android.service.AlarmReceiver" />
<receiver android:name="com.kii.sample.push.KiiPushBroadcastReceiver" android:enabled="true" >
<intent-filter>
<!-- Receives the actual messages. -->
<action android:name="cn.jpush.android.intent.REGISTRATION" />
<action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" />
<action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" />
<action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" />
<category android:name="com.kii.sample.push" />
</intent-filter>
</receiver>
<!-- *** up to this point *** -->
<!-- *** add following lines *** -->
<meta-data android:name="JPUSH_CHANNEL" android:value="developer-default" />
<meta-data android:name="JPUSH_APPKEY" android:value="YOUR_JPUSH_APP_KEY" />
<!-- *** up to this point *** -->
</application>
</manifest>
この Manifest ファイルには、Kii Cloud で利用していない機能を含め、JPush で推奨されているすべての権限やサービスを記述しています。詳細は JPush のドキュメントをご覧ください。
次に実装を行います。プログラムの実装 に進みましょう。導入手順を実行中の場合はブラウザの戻るボタンで元のページに戻ってください。
<< ビルド環境の設定 | プログラムの実装 >> |