package com.yeshi.push;
|
|
import android.app.Application;
|
import android.os.Build;
|
import android.util.Log;
|
|
import com.heytap.msp.push.HeytapPushManager;
|
import com.heytap.msp.push.callback.ICallBackResultService;
|
import com.lcjian.library.util.ManifestDataUtil;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.meizu.cloud.pushsdk.PushManager;
|
import com.vivo.push.IPushActionListener;
|
import com.vivo.push.PushClient;
|
//暂时取消小米推送
|
//import com.xiaomi.mipush.sdk.MiPushClient;
|
|
public class PushUtil {
|
|
static String TAG = "PushUtil";
|
|
/**
|
* 推送 注册
|
*/
|
public static void inintPush(Application context, ITokenListener tokenListener) {
|
if (context != null) {
|
String xmRegId = null;
|
switch (Build.BRAND.toLowerCase()) {
|
case "huawei":
|
case "honor":
|
//获取token
|
new Thread() {
|
@Override
|
public void run() {
|
// try {
|
// // 从agconnect-service.json文件中读取appId
|
// String appId = "10409568";
|
// // 输入token标识"HCM"
|
// String tokenScope = "HCM";
|
// String token = HmsInstanceId.getInstance(context).getToken(appId, tokenScope);
|
// Log.i(TAG, "get token: " + token);
|
//
|
// // 判断token是否为空
|
// if(!TextUtils.isEmpty(token)) {
|
// tokenListener.onToken("hw",token);
|
// }
|
// } catch (ApiException e) {
|
// Log.e(TAG, "hw: get token failed, " + e);
|
// }
|
}
|
}.start();
|
return;
|
case "oppo"://上面官方判断
|
/***OPPO官方判断方法*/
|
HeytapPushManager.init(context, true);
|
if (HeytapPushManager.isSupportPush()) {
|
String appKey = ManifestDataUtil.getAppMetaData(context, "OPPO_APPKEY").replace("OPPO-", "");
|
String appSecret = ManifestDataUtil.getAppMetaData(context, "OPPO_APPSECRET").replace("OPPO-", "");
|
HeytapPushManager.register(context, appKey, appSecret, new ICallBackResultService() {
|
|
@Override
|
public void onRegister(int i, String s) {
|
//注册成功
|
Log.i(TAG, "OPPO注册结果:" + i);
|
Log.i(TAG, "OPPO注册成功:" + s);
|
if (i == 0) {
|
tokenListener.onToken("oppo", s);
|
}
|
}
|
|
@Override
|
public void onUnRegister(int i) {
|
|
}
|
|
@Override
|
public void onSetPushTime(int i, String s) {
|
|
}
|
|
@Override
|
public void onGetPushStatus(int i, int i1) {
|
|
}
|
|
@Override
|
public void onGetNotificationStatus(int i, int i1) {
|
|
}
|
});
|
HeytapPushManager.requestNotificationPermission();
|
return;
|
}
|
break;
|
case "vivo"://上面官方判断
|
/***VIVO官方判断方法**/
|
// 在当前工程入口函数,建议在 Application 的 onCreate 函数中,添加以下代码:
|
PushClient.getInstance(context).initialize();
|
if (PushClient.getInstance(context).isSupport()) {
|
//并且打开推送服务
|
PushClient.getInstance(context).turnOnPush(new IPushActionListener() {
|
@Override
|
public void onStateChanged(int i) {
|
if (i == 0) {
|
String regId = PushClient.getInstance(context).getRegId();
|
Log.i(TAG, "VIVO注册成功:" + regId);
|
tokenListener.onToken("vivo", regId);
|
}
|
}
|
});
|
return;
|
}
|
break;
|
case "meizu"://魅族
|
{
|
String appId = ManifestDataUtil.getAppMetaData(context, "MEIZU_APPID").replace("MEIZU-", "");
|
String appKey = ManifestDataUtil.getAppMetaData(context, "MEIZU_APPKEY").replace("MEIZU-", "");
|
PushManager.register(context, appId, appKey);
|
return;
|
}
|
}
|
|
String appId = ManifestDataUtil.getAppMetaData(context, "XIAOMI_APPID").replace("XIAOMI-", "");
|
String appKey = ManifestDataUtil.getAppMetaData(context, "XIAOMI_APPKEY").replace("XIAOMI-", "");
|
// MiPushClient.registerPush(context, appId, appKey);//注册小米推送
|
// xmRegId = MiPushClient.getRegId(context);
|
// Log.i(TAG, "小米注册成功:" + xmRegId);
|
if (!StringUtils.isEmpty(xmRegId)) {
|
tokenListener.onToken("xm", xmRegId);
|
}
|
|
|
}
|
}
|
|
|
public interface ITokenListener {
|
public void onToken(String romType, String regId);
|
}
|
|
}
|