问题描述
普通手机APP如何初始化移动推送SDK。
解决方案
maven { url 'https://maven.aliyun.com/nexus/content/repositories/releases/' }
implementation "com.aliyun.ams:alicloud-android-push:3.8.7" // 以3.8.7版本为例
<application android:name="MainApplication"> <meta-data android:name="com.alibaba.app.appkey" android:value="*****"/> <!-- 请填写你自己的- appKey --> <meta-data android:name="com.alibaba.app.appsecret" android:value="****"/> <!-- 请填写你自己的appSecret --> </application>
在MainApplication的onCreate()方法中调用initCloudChannel(),且保证调用时不要判断主进程(initCloudChannel()的上一层直接是onCreate(),没有其他)。
public class MainApplication extends Application { @Override public void onCreate() { super.onCreate(); initCloudChannel(this); } }
private void initCloudChannel(Context context) { PushServiceFactory.init(context); CloudPushService pushService = PushServiceFactory.getCloudPushService(); pushService.setLogLevel(CloudPushService.LOG_DEBUG); //仅适用于Debug包,正式包不需要此行 pushService.register(context, new CommonCallback() { @Override public void onSuccess(String response) { Log.i(TAG, "initCloudChannel success " + pushService.getDeviceId()); } @Override public void onFailed(String errorCode, String errorMessage) { Log.w(TAG, "initCloudChannel failed -- errorcode:" + errorCode + " -- errorMessage:" + errorMessage); } }); // 获取设备id String deviceId = PushServiceFactory.getCloudPushService().getDeviceId(); Log.i(TAG, "deviceId==" + deviceId); }
初始化注册成功标志
initCloudChannel success 并且 “deviceId==”也取到了值。注意:getDeviceId()必须在register成功后才能取到值。
适用于
移动推送
文档内容是否对您有帮助?