集成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, "In onNewMessage");
        // 在此处理消息。例如,启动一个异步任务。
    }
    @Override
    public void onNewToken(Context context, String token){
            Log.d(TAG, "In onNewDeviceId");
        // 在此处理设备ID。例如,将其存储在您的服务器上。
    }
}
更新您的应用清单
要接收消息,必须更新应用的AndroidManifest.xml文件。以下示例使用MyA3LMessagingService作为A3LMessagingService类实现的占位符。
- 
    将 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>
- 
    将有关 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对象的实例,您可以从其进行调用。
- 使用A3LMessaging.getCurrentPlatform()以String形式获取当前消息传递解决方案。- 如果返回FCM_PLATFORM,请使用A3LMessaging.getFCMInstance()获取实例。
- 如果返回了ADM_PLATFORM,则使用A3LMessaging.getADMInstance()。
 
- 如果返回
- 
    现在,您可以直接使用 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实例进行一些操作。 }
- 
    如果需要覆盖 A3LMessagingService不支持的方法,可以创建自己的自定义类。为此,从特定于解决方案的API继承并覆盖需要访问的方法。例如,如果应用需要从 FirebaseMessagingService访问onDeletedMessages()方法,可以创建一个类似以下示例的类。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。
相关资源
Last updated: 2025年9月19日

