このガイドでは、MPS を Android クライアントに迅速に統合する方法について簡単に説明します。Message Push Service (MPS) は、Native AAR または Portal & Bundle メソッドで統合できます。
統合プロセス全体は、主に次の 4 つのステップで構成されます。
SDK の追加: SDK の依存関係と
AndroidManifestの構成を追加します。SDK の初期化: プッシュサービスを初期化して、クライアントとモバイルプッシュゲートウェイ間の持続的接続を確立します。
サービスの作成: Android デバイス ID (Ad トークン) を受信するサービスを作成し、デバイス ID に基づいてメッセージをプッシュできるようにします。
ユーザー ID のバインド: サーバーにユーザー ID を報告して、ユーザー ID とデバイス ID をバインドし、ユーザー ID に基づいてメッセージをプッシュできるようにします。
前提条件
一般的な操作を参照して、基本構成を完了していること。
Native AAR を介して MPS を統合する場合は、mPaaS をプロジェクトに追加していることを確認してください。
コンポーネント化統合モード (Portal & Bundle プロジェクト経由) で MPS を統合する場合は、コンポーネント化統合プロセスを完了していることを確認してください。
mPaaS コンソールから
.config構成ファイルを取得していること。構成ファイルの生成とダウンロードの方法については、構成ファイルをプロジェクトに追加するを参照してください。このガイドで説明されている
MPPushMsgServiceAdapterメソッドは、ベースライン 10.1.68.32 以降のバージョンでのみ機能します。現在のベースラインバージョンが 10.1.68.32 より前の場合は、mPaaS アップグレードガイドを参照して、ベースラインバージョンを 10.1.68.32 にアップグレードしてください。説明以前のバージョンでは、
AliPushRcvServiceメソッドを引き続き使用できます。ここをクリックして、AliPushRcvServiceの使用に関するドキュメントをダウンロードしてください。
手順
MPS を使用するには、次の手順を実行する必要があります。
MPS SDK を追加します。
プッシュ SDK の依存関係と
AndroidManifest構成を追加します。SDK の依存関係を追加します。統合方法を選択し、それに応じて必要な手順を実行します。
Native AAR: AAR コンポーネント管理の手順に従って、プッシュコンポーネント管理 (AAR) を介してプロジェクトに コンポーネントをインストールします。
コンポーネント化統合モード (Portal & Bundle): プッシュコンポーネント管理 (AAR)コンポーネントの依存関係を追加する を介して Portal プロジェクトと Bundle プロジェクトに コンポーネントをインストールします。詳細については、を参照してください。
AndroidManifest構成を追加します。AndroidManifest.xmlファイルに、次のコンテンツを追加します。説明Portal & Bundle を介して SDK を追加する場合は、上記のコンテンツを Portal プロジェクトに追加する必要があります。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <service android:name="com.alipay.pushsdk.push.NotificationService" android:enabled="true" android:exported="false" android:label="NotificationService" android:process=":push"> <intent-filter> <action android:name="${applicationId}.push.action.START_PUSHSERVICE" /> </intent-filter> </service> <receiver android:name="com.alipay.pushsdk.BroadcastActionReceiver" android:enabled="true" android:process=":push"> <intent-filter android:priority="2147483647"> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <action android:name="android.intent.action.USER_PRESENT" /> <action android:name="android.intent.action.ACTION_POWER_CONNECTED" /> </intent-filter> </receiver>メッセージの到達率を向上させるために、プッシュ SDK にはプロセス常駐機能が組み込まれており、上記の
com.alipay.pushsdk.BroadcastActionReceiverがシステムブロードキャストをリッスンしてプッシュプロセスをウェイクアップし、プロセスがリサイクルされた後に自動的に再起動します。アクセスする際には、必要に応じてこれらの機能を有効にするかどうかを決定できます。システム起動ブロードキャストを監視する必要がない場合は、次の項目を削除できます。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <action android:name="android.intent.action.BOOT_COMPLETED" />ネットワーク切り替えブロードキャストを監視する必要がない場合は、次の項目を削除できます。
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />ユーザー ウェイクアップ ブロードキャストを監視する必要がない場合は、次の項目を削除できます。
<action android:name="android.intent.action.USER_PRESENT" />充電状態変更ブロードキャストを監視する必要がない場合は、次の項目を削除できます。
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />上記のすべてのブロードキャストを監視する必要がない場合は、
com.alipay.pushsdk.BroadcastActionReceiverのandroid:enabled属性を false に設定できます。プッシュプロセスがリサイクルされた後に自動的に再起動する必要がない場合は、
applicationノードの下に次の構成を追加できます。<meta-data android:name="force.kill.push" android:value="on" />説明この構成は、ベースラインバージョン 10.2.3.21 以上でのみ有効です。
SDK を初期化します。
メッセージプッシュサービスを初期化して、クライアントとモバイルプッシュゲートウェイ間の持続的接続を確立します。持続的接続は SDK によって維持され、セルフビルドチャネルと見なされます。
Native AAR
Applicationで mPaaS 初期化メソッドを呼び出した場合は、MP.init()の後に次のメソッドを呼び出すことができます。MPPush.init(this);mPaaS 初期化メソッドを呼び出していない場合は、
Applicationで次のメソッドを呼び出すことができます。MPPush.setup(this); MPPush.init(this);
Portal & Bundle
LauncherApplicationAgentまたはLauncherActivityAgentで、postInitで次のメソッドを呼び出します。MPPush.init(context);
サービスを作成します。
MPPushMsgServiceAdapterを継承するサービスを作成し、onTokenReceiveメソッドをオーバーライドして、セルフビルドチャネルによって配信されたデバイストークンを受信します。public class MyPushMsgService extends MPPushMsgServiceAdapter { /** * セルフビルドチャネルによって配信されたトークンを受信するとコールバックされます * * @param token セルフビルドチャネルによって配信されたデバイストークン */ @Override protected void onTokenReceive(String token) { Log.d("セルフビルドチャネルによって配信されたトークンを受信しました: " + token); } }AndroidManifest.xmlでサービスを宣言します。<service android:name="com.mpaas.demo.push.MyPushMsgService" android:exported="false"> <intent-filter> <action android:name="${applicationId}.push.action.MESSAGE_RECEIVED" /> <action android:name="${applicationId}.push.action.REGISTRATION_ID" /> <category android:name="${applicationId}" /> </intent-filter> </service>この手順を完了すると、コンソールでデバイスごとにメッセージをプッシュできます。必要なデバイス ID はトークンを参照します。
ユーザー ID をバインドします。
ユーザー ID は開発者によってカスタマイズされます。実際のユーザーシステムのユーザー ID、またはアカウントや携帯電話番号など、ユーザーとマッピング関係を形成できるその他のパラメーターにすることができます。
トークンを受信した後、トークンをユーザー ID にバインドできます。
String userId = "カスタム userId"; ResultPbPB bindResult = MPPush.bind(context, userId, token); Log.d("userId のバインド " + (bindResult.success ? "成功" : ("エラー:" + bindResult.code)));MPLoggerを呼び出してユーザー ID をすでに設定している場合は、バインド時にユーザー ID を渡す必要はありません。次に例を示します。MPLogger.setUserId("カスタム userId"); ResultPbPB bindResult = MPPush.bind(context, token);ユーザー ID のバインドを解除するには、たとえば、ユーザーがアプリを終了するときに、次のメソッドを呼び出すことができます。
ResultPbPB unbindResult = MPPush.unbind(context, userId, token); ResultPbPB unbindResult = MPPush.unbind(context, token);この手順を完了すると、コンソールでユーザーごとにメッセージをプッシュできます。必要なユーザー ID は、カスタムユーザー ID を参照します。
関連操作
メッセージの到達率を向上させるために、Android 携帯電話ベンダーが提供するプッシュチャネルを統合することをお勧めします。現在、MPS は Huawei、Xiaomi、OPPO、vivo のプッシュチャネルをサポートしています。これらのベンダーのプッシュチャネルにアクセスする方法については、サードパーティチャネルを統合するを参照してください。
サードパーティチャネルがメッセージを受信すると、通知が自動的に送信されます。ユーザーは通知をクリックして Web ページを開くことができます。カスタマイズされた DeepLink に従ってアプリ内ページにジャンプしたり、メッセージを受信した後の動作をカスタマイズしたりする必要がある場合は、通知クリックを処理するを参照してください。
その他の機能については、高度な機能を参照してください。
サンプルコード
ここをクリックして、サンプルコードをダウンロードしてください。
次のステップ
MPS を Android クライアントに正常に統合した後、サーバーを介して RESTful インターフェースを呼び出すことができます。詳細については、サーバーの構成 > メッセージのプッシュを参照してください。