マニフェストの設定

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 のドキュメントをご覧ください。

次に実装を行います。プログラムの実装 に進みましょう。導入手順を実行中の場合はブラウザの戻るボタンで元のページに戻ってください。


<< ビルド環境の設定 プログラムの実装 >>