as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
AWS
文档
Support
Contact Us
My Cases
开发
测试
应用发布
盈利
用户参与
设备规格
资源

集成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, "In onNewMessage");
        // 在此处理消息。例如,启动一个异步任务。
    }

    @Override
    public void onNewToken(Context context, String token){
            Log.d(TAG, "In onNewDeviceId");
        // 在此处理设备ID。例如,将其存储在您的服务器上。
    }
}

更新您的应用清单

要接收消息,必须更新应用的AndroidManifest.xml文件。以下示例使用MyA3LMessagingService作为A3LMessagingService类实现的占位符。

  1. A3LMessagingService类的实现声明为接收器。这让您能够处理REGISTRATIONMESSAGE意图。

     <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. 现在,您可以直接使用FirebaseMessagingADM对象进行调用。请参阅以下示例。

     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继承并覆盖需要访问的方法。

    例如,如果应用需要从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日