1.个推平台注册账号
2.开发者中心登记应用,会生成特定的GETUI_APP_ID,GETUI_APP_KEY,GETUI_APP_SECRET
—
在defautConfig{
.....
manifestPlaceholders = [ GETUI_APP_ID : "NxRmtmdIPv71Yd2ujjAJI", GETUI_APP_KEY : "kIx2q6Ah6rA7Te7Qlj88E7", GETUI_APP_SECRET: "502BB3YGCe6xLVgXAuFVu6" ]
ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64" }
}
添加依赖
compile 'com.getui:sdk:2.11.1.0'自定义PushService ,PushIntentService
public class PushService extends Service { @Override public void onCreate() { super.onCreate(); GTServiceManager.getInstance().onCreate(this); } @Override public int onStartCommand(Intent intent, int flags, int startId) { super.onStartCommand(intent, flags, startId); return GTServiceManager.getInstance().onStartCommand(this, intent, flags, startId); } @Override public IBinder onBind(Intent intent) { return GTServiceManager.getInstance().onBind(intent); } @Override public void onDestroy() { super.onDestroy(); GTServiceManager.getInstance().onDestroy(); } @Override public void onLowMemory() { super.onLowMemory(); GTServiceManager.getInstance().onLowMemory(); } }PushIntentService
public class PushIntentService extends GTIntentService { public PushIntentService() { } @Override public void onReceiveServicePid(Context context, int pid) { } //接收透传消息 @Override public void onReceiveMessageData(Context context, GTTransmitMessage msg) { // Log.e(TAG, "GTTransmitMessage= " + msg); // String appid = msg.getAppid(); // String taskid = msg.getTaskId(); // String messageid = msg.getMessageId(); byte[] payload = msg.getPayload(); // String pkg = msg.getPkgName(); // String cid = msg.getClientId(); // 第三方回执调用接口,actionid范围为90000-90999,可根据业务场景执行 // boolean result = PushManager.getInstance().sendFeedbackMessage(context, taskid, messageid, 90001); if (payload == null) return; String data = new String(payload); if (Constants.NotificationId > 65534) { Constants.NotificationId = 0; } LogUtil.e("推送通知内容:" + data); NotificationBean bean = new Gson().fromJson(data, NotificationBean.class); showNotification(Constants.NotificationId++, bean); } //显示通知栏 private void showNotification(int id, NotificationBean bean) { NotificationBean.ContentBean contentBean = bean.getContent(); String carName = contentBean.getCarName(); String carPlate = contentBean.getCarPlate(); NotificationCompat.Builder builder = new NotificationCompat.Builder(this); builder.setSmallIcon(R.drawable.push); if (carName.equals(carPlate)) { builder.setContentTitle(carPlate + " " + contentBean.getAlarmName()); } else { builder.setContentTitle(carPlate + "(" + carName + ") " + contentBean.getAlarmName()); } builder.setContentText(bean.getContent().getAddr()); builder.setAutoCancel(true); builder.setOnlyAlertOnce(true); // 需要VIBRATE权限 builder.setDefaults(Notification.DEFAULT_ALL); builder.setPriority(Notification.PRIORITY_DEFAULT); //自定义打开的界面 Intent resultIntent = new Intent(this, 你想跳转的页面.class); resultIntent.putExtra("push", true); resultIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(contentIntent); NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(id, builder.build()); } @Override public void onReceiveClientId(Context context, String clientid) { LogUtil.e("onReceiveClientId -> " + "clientid = " + clientid); } @Override public void onReceiveOnlineState(Context context, boolean online) { } @Override public void onReceiveCommandResult(Context context, GTCmdMessage cmdMessage) { } }初始化并注册Service
PushManager.getInstance().initialize(App.getAppContext(), userPushService); PushManager.getInstance().registerPushIntentService(App.getAppContext(), PushIntentService.class);获取Cid
PushManager.getInstance().getClientid(XXXXXXActivity.this)关闭推送
PushManager.getInstance().turnOffPush(SettingActivity.this);开启推送
PushManager.getInstance().turnOnPush(SettingActivity.this);