開発者コンソール

A3L Messaging SDKの統合

A3L Messaging SDKの統合

このページでは、A3L Messaging SDKをプロジェクトに統合する方法について説明します。

A3LMessagingServiceクラスを拡張する方法

A3LMessagingServiceクラスは、A3L Messaging SDKに含まれています。アプリがメッセージを受信できるようにするには、このクラスを拡張する必要があります。次の表に、実装でオーバーライドする必要があるメソッドを示します。

メソッド 説明
onMessageReceived() メッセージがアプリインスタンスに配信されたときに呼び出されます。
onNewToken() アプリインスタンスの新しいデバイスIDが利用可能になると呼び出されます。

以下のコードは、MyA3LMessagingServiceというクラスを使用した実装の例です。

public class MyA3LMessagingService extends A3LMessagingService {

    private final String TAG = "MyA3LMessagingService";

    @Override
    public void onMessageReceived(Context context, RemoteMessage remoteMessage){
        Log.d(TAG, "onNewMessage内");
        // ここでメッセージを処理します(非同期タスクの開始など)。
    }

    @Override
    public void onNewToken(Context context, String token){
            Log.d(TAG, "onNewDeviceId内");
        // ここでデバイスIDを処理します(サーバーへの保存など)。
    }
}

アプリのマニフェストを更新する方法

メッセージを受信するには、アプリのAndroidManifest.xmlファイルを更新する必要があります。以下の例では、A3LMessagingServiceクラスの実装のプレースホルダーとして、MyA3LMessagingServiceを使用しています。

  1. A3LMessagingServiceクラスの実装をレシーバーとして宣言します。これにより、REGISTRATIONインテントとMESSAGEインテントを処理できるようになります。

     <application>
     <!--  A3LMessagingの構成開始  -->
             <receiver android:name=".MyA3LMessagingService"
                 android:exported="false"
                 android:enabled="true">
                 <intent-filter>
                     <action android:name="com.amazon.A3L.messaging.intent.REGISTRATION"/>
                     <action android:name="com.amazon.A3L.messaging.intent.MESSAGE"/>
                 </intent-filter>
             </receiver>
     </application>
    
  2. A3LMessagingServiceの実装に関する詳細をメタデータとして追加します。これにより、A3L Messagingを適切に初期化できるようになります。

     <application>
     <!--  A3LMessagingの構成開始  -->
        
             <meta-data android:name="com.a3l.clsName"
                 android:value="com.example.mya3lapp.MyA3LMessagingService" />
        
     </application>
    

登録トークンを取得する方法

アプリの初回起動時に、A3L Messagingライブラリによってクライアントアプリインスタンスの登録トークンが生成されます。このトークンは、A3LMessagingServiceクラスのオーバーライドされたonNewToken()メソッドで配信されます。

現在の登録トークンを取得するには、次の例に示すように、A3LMessaging.getToken()を呼び出します。

A3LMessaging.getToken()
                .addOnCompleteListener(new OnCompleteListener<String>() {
                    @Override
                    public void onComplete(Task<String> task) {
                        if (!task.isSuccessful()) {
                            Log.w(TAG, "登録トークンの取得に失敗しました", task.getException());
                            return;
                        }

                        // 新しいFCM/ADM登録トークンを取得します
                        String token = task.getResult();

                        Log.d(TAG, token);
                    }
                });

オプション - エスケープハッチを作成する方法

特別なユースケースのためにカスタムメソッドを作成する必要がある場合は、そのシナリオ用のエスケープハッチを作成できます。A3LMessagingクラスでは、ADMオブジェクトとFirebaseMessagingオブジェクトのインスタンスが提供されるので、これを使用して呼び出しを行うことができます。

  1. A3LMessaging.getCurrentPlatform()を使用して、現在のメッセージングソリューションをStringとして取得します。
    • FCM_PLATFORMが返された場合は、A3LMessaging.getFCMInstance()を使用してインスタンスを取得します。
    • ADM_PLATFORMが返された場合は、A3LMessaging.getADMInstance()を使用します。
  2. これで、FirebaseMessagingオブジェクトやADMオブジェクトを使用して直接呼び出しを行うことができます。次の例を参照してください。

     String currentPlatform = A3LMessaging.getCurrentPlatform();
     if(A3LMessagingConstants.ADM_PLATFORM.equals(currentPlatform)){
         ADM adm = A3LMessaging.getADMInstance();
         // ADMインスタンスを使用して処理を実行します。
     }
     else if (A3LMessagingConstants.FCM_PLATFORM.equals(currentPlatform)){
         FirebaseMessaging firebaseMessaging = A3LMessaging.getFCMInstance();
         // FCMインスタンスを使用して処理を実行します。
     }
    
  3. A3LMessagingServiceでサポートされていないメソッドをオーバーライドする必要がある場合は、独自のカスタムクラスを作成できます。これを行うには、ソリューション固有のAPIを継承し、必要なメソッドをオーバーライドします。

    たとえば、FirebaseMessagingServiceonDeletedMessages()メソッドがアプリで必要な場合は、次の例のようなクラスを作成できます。

     import com.google.firebase.messaging.FirebaseMessagingService;
    
     public class MyCustomService extends FirebaseMessagingService {
         @Override
         public void onDeletedMessages(){
             // 関数のカスタム処理
         }
     }
    

    また、このAPIのイベントをリッスンするようにアプリをセットアップする必要もあります。必要となるセットアップは、メッセージングソリューションとAPIによって異なる場合があります。

A3L Messaging APIリファレンス

A3L Messaging SDKに含まれるクラスとメソッドの詳細については、これらが網羅されているA3L Messaging APIリファレンスを参照してください。

次のステップ

A3L Messagingのテストを参照してください。