摘要:本文将带你了解Android应用开发Android 极光推送的集成,希望本文对大家学Android有所帮助。
本文将带你了解Android应用开发Android 极光推送的集成,希望本文对大家学Android有所帮助。
最近公司让集成极光推送,实现个人推送还有所有下载app 的推送。去极光官网看了下资料,发现极光更新了,从sdk.3.0.7 开始用新的设置别名和Tag的方法,以前的方法不再维护了。。。那肯定得研究新的方法,下面是我的一些心得体会,和大家分享下。
一、极光推送集成:
集成的过程官网写的很清晰,我就不在重复了,需要的可以访问极光推送官网:https://docs.jiguang.cn/jpush/client/Android/android_guide/
二、推送到所有App 用户:
使用JPushId 是最简单的方法:在你的代码中添加这句代码就可以了
String jPushId = JPushInterface.getRegistrationID(this);
三、推送到个人或者特定群体:
我个人主要用的方法就是setAlias() 这个方法
1、以前旧的方法,直接回调就可以设置别名成功,代码很简单:(可以参考JPush 官网中的代码)
// 这是来自 JPush Example 的设置别名的 Activity 里的代码。一般 App 的设置的调用入口,在任何方便的地方调用都可以。
private void setAlias() {
EditText aliasEdit = (EditText) findViewById(R.id.et_alias);
String alias = aliasEdit.getText().toString().trim();
if (TextUtils.isEmpty(alias)) {
Toast.makeText(PushSetActivity.this,R.string.error_alias_empty, Toast.LENGTH_SHORT).show();
return;
}
if (!ExampleUtil.isValidTagAndAlias(alias)) {
Toast.makeText(PushSetActivity.this,R.string.error_tag_gs_empty, Toast.LENGTH_SHORT).show();
return;
}
// 调用 Handler 来异步设置别名
mHandler.sendMessage(mHandler.obtainMessage(MSG_SET_ALIAS, alias));
}
private final TagAliasCallback mAliasCallback = new TagAliasCallback() {
@Override
public void gotResult(int code, String alias, Set
String logs ;
switch (code) {
case 0:
logs = Set tag and alias success;
Log.i(TAG, logs);
// 建议这里往 SharePreference 里写一个成功设置的状态。成功设置一次后,以后不必再次设置了。
break;
case 6002:
logs = Failed to set alias and tags due to timeout. Try again after 60s.;
Log.i(TAG, logs);
// 延迟 60 秒来调用 Handler 设置别名
mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_SET_ALIAS, alias), 1000 * 60);
break;
default:
logs = Failed with errorCode = + code;
Log.e(TAG, logs);
}
ExampleUtil.showToast(logs, getApplicationContext());
}
};
private static final int MSG_SET_ALIAS = 1001;
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(android.os.Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case MSG_SET_ALIAS:
Log.d(TAG, Set alias in handler.);
// 调用 JPush 接口来设置别名。
JPushInterface.setAliasAndTags(getApplicationContext(),
(String) msg.obj,
null,
mAliasCallback);
break;
default:
Log.i(TAG, Unhandled msg - + msg.what);
}
}
};
2、sdk 3.0.7 开始使用新的设置别名的方法
新的设置别名的方法不能直接回调获得设置结果,是通过JPushMessageReceiver 这个广播来响应设置别名的结果,这算是其最大的改变点。参考demo 我用新方法做了推送的别名设置。
1)设置别名
JPushInterface.setAlias(GlobalApplication.getContext(), KeyConfig.ALISE, (String) msg.obj); // 第二个参数sequenc ,自己自定义的序列号; 第三个参数alias
2)设置别名后在广播中做别名的响应操作
public class JpushReciver extends JPushMessageReceiver {
//设置别名反馈
@Override
public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) {
TagAliasOperatorHelper.getInstance().onAliasOperatorResult(context, jPushMessage); // 这个方法就是我们设置别名后结果,根据JPushMessage 做处理
super.onAliasOperatorResult(context, jPushMessage);
}
}
// 通过JPushMessage 来获取ErrorCode ,来做设置别名成功还是失败的操作
public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) {
String alias = jPushMessage.getAlias();
if (jPushMessage.getErrorCode() == 0) {
GlobalApplication.spUtils.put(KeyConfig.ALIAS, alias);
} else {
String logs = Failed to set alias and tags due to timeout. Try again after 60s.极光推送别名设置失败,60秒后重试;
LogUtils.e(logs);
// 延迟 60 秒来调用 Handler 设置别名
mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_SET_ALIAS, alias), 1000 * 60);
}
}
四、附完整的TagAliasOperatorHelper 代码
public class TagAliasOperatorHelper {
private static final int MSG_SET_ALIAS = 1;
private static TagAliasOperatorHelper mInstance;
public Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case MSG_SET_ALIAS:
LogUtils.e(Set alias in handler.);
//调用JPush 新接口来设置别名
JPushInterface.setAlias(GlobalApplication.getContext(), KeyConfig.ALISE, (String) msg.obj);
break;
default:
LogUtils.e(Unhandled msg - + msg.what);
}
}
};
public static TagAliasOperatorHelper getInstance() {
if (mInstance == null) {
synchronized (TagAliasOperatorHelper.class) {
if (mInstance == null) {
mInstance = new TagAliasOperatorHelper();
}
body{ }
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号