Android 는 푸 시 를 사용 하여 3 자 응용 푸 시 기능 을 실현 합 니 다.

PS:푸 시 를 사 용 했 습 니 다.제3자 응용 을 실현 하 는 푸 시 기능 은 비교적 간단 하 다 고 생각 합 니 다.공식 문서 도 매우 명확 하 게 썼 습 니 다.

학습 내용:
1.개 푸 시 를 사용 하여 제3자 응용 푸 시 를 실현 한다.
모든 설정 은 제 가 마지막 으로 소스 코드 를 드 리 겠 습 니 다.내부 에 관련 설정 과 문서 가 있어 서 여러분 이 설정 을 완성 할 수 있 도록 도와 드 리 겠 습 니 다.여기 서 소개 하지 않 겠 습 니 다.
작성 해 야 할 것 이 그리 많 지 않 은 것 같 습 니 다.공식 문서 가 명확 하 게 쓰 여 있 기 때 문 입 니 다.설정 을 어떻게 하 는 지,jar 가방 을 가 져 오 는 지,so 파일,그리고 AndroidManifest 파일 과 관련 된 설정 은 모두 명확 하 게 쓰 여 있 습 니 다.저 는 여기 서 간단하게 소개 하 겠 습 니 다.계 정 을 등록 하 는 것 은 말 하지 않 겠 습 니 다.이런 기본 적 인 것들 은 줄 일 필요 가 없습니다.
i.PushManager
PushManager 는 푸 시 를 실현 하 는 핵심 클래스 로 푸 시 제어,탭 설정,별명 설정,기본 시간 설정 등 을 할 수 있 습 니 다.모든 인 터 페 이 스 는 이 대상 에서 호출 됩 니 다.따라서 PushManager 대상 을 초기 화 해 야 합 니 다.
PushManager.getInstance().initialize(context);
대상 의 생 성 방식 은 일렬 입 니 다.따라서 받 은 대상 도 유일 합 니 다.PushManager 대상 을 얻 는 동시에 푸 시 서 비 스 를 초기 화 합 니 다.인 터 페 이 스 를 호출 한 후 푸 시 서비스 배경 에서 실 행 됩 니 다.라디오 를 통 해 CID 를 앱 에 보 냅 니 다.여기 서 가장 중요 한 것 은 바로 이 방송 입 니 다.다른 것 은 중요 한 것 이 없다.조금 만 주의 하면 된다.
ii.GeTuipush Receiver app CID 라디오 수신

package com.example.totem.getuidemo.receiver;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;

import com.igexin.sdk.PushConsts;
import com.igexin.sdk.PushManager;

/**
 * Created by Totem on 2016/8/15.
 * @author      
 */
public class GeTuiPushReceiver extends BroadcastReceiver {

 public static String KEY_CLIENT_ID = "push_notification_client_id";

 public static String message;

 public static void init(Context context){

  /**
   *      
   *         ,    ,    ,       
   *            
   * */
  PushManager.getInstance().initialize(context);
  /**
   *   ClientId
   * */
  String clientId = PushManager.getInstance().getClientid(context);
  if(clientId != null){
   KEY_CLIENT_ID = clientId;
  }
 }


 @Override
 public void onReceive(Context context, Intent intent) {
  //    
 }

 private static OnGetPushMessageListener onGetPushMessageListener;

 public static void setOnGetPushMessageListener(OnGetPushMessageListener onGetPushMessageListener) {
  GeTuiPushReceiver.onGetPushMessageListener = onGetPushMessageListener;
 }

 /**
  *       
  * */

 public interface OnGetPushMessageListener{
  void getOstfMessage(String message);
 }

}
이 방송 은 푸 시 메 시 지 를 받 는 핵심 유형 으로 실현 하 는 것 도 비교적 간단 하 다.먼저 PushManager 대상 을 얻 은 다음 에 푸 시 서 비 스 를 초기 화하 고 OnReceiver 방법 에서 전 달 된 데 이 터 를 판단 하 는 것 이다.여 기 는 두 가지 상태 만 판단 했다.하 나 는 푸 시 알림 이 고 다른 하 나 는 스 포 일 러 메시지 이다.

@Override
 public void onReceive(Context context, Intent intent) {
  Bundle bundle = intent.getExtras();
  switch (bundle.getInt(PushConsts.CMD_ACTION)){


   /**
    *     
    * */
   case PushConsts.GET_CLIENTID:
    String cid = bundle.getString("clientid");
    break;

   /**
    *     ,      Json   .             .
    * */
   case PushConsts.GET_MSG_DATA:
    String appid = bundle.getString("appid");
    byte[] payload = bundle.getByteArray("payload");
    String taskid = bundle.getString("taskid");
    String messageid = bundle.getString("messageid");
    if(payload != null){
     /**
      *           .        
      * */
     message = new String(payload);
     onGetPushMessageListener.getOstfMessage(message);
    }else{
     message = "";
    }
    break;
  }
 }
이렇게 판단 을 통 해 우 리 는 푸 시 알림 인지,스 포 일 러 메시지 인지 등 을 알 수 있다.마지막 으로 외부 에 노출 된 인 터 페 이 스 를 썼 는데 사실은 Activity 에 인 터 페 이 스 를 노출 시 켰 다.우리 가 방송 에서 데 이 터 를 받 았 을 때 변화 가 생 겼 거나 데이터 가 전달 되 었 을 때 이 인 터 페 이 스 를 통 해 데이터 에 변화 가 생 겼 음 을 알려 주 고 메 인 프로 세 스 가 관련 처 리 를 해 야 한다.이것 은 인 터 페 이 스 를 노출 시 키 는 목적 이다.그리고 홈 페이지 에서 우 리 는 이 인터페이스 만 실현 하면 된다.

GeTuiPushReceiver.setOnGetPushMessageListener(new GeTuiPushReceiver.OnGetPushMessageListener() {
  @Override
  public void getOstfMessage(String message) {
   if(message!=null){
    MessageData.add(message);
   }
  }
 });

iii.푸 시 열기
turnPush(context)방법 은 푸 시 를 여 는 데 사 용 됩 니 다.푸 시 를 주동 적 으로 열지 않 으 면 배경 에서 푸 시 메 시 지 를 보 내 도 받 을 수 없습니다.기본 상태 에서 열 린 상태 입 니 다.
GeTuiPushReceiver.init(getApplicationContext());pushManager = PushManager.getInstance();pushManager.turnOnPush(this);
iv.푸 시 서비스 닫 기
turnOffPush(context)방법 은 푸 시 서 비 스 를 닫 는 데 사 용 됩 니 다.이 방법 을 실행 하면 푸 시 서 비 스 를 받 을 수 없습니다.푸 시 를 다시 받 으 려 면 turnPush(context)방법 을 사용 해 야 합 니 다.다른 방법 은 잘못 되 었 습 니 다.
GeTuiPushReceiver.init(getApplicationContext());pushManager = PushManager.getInstance();pushManager.turnOffPush(this);
SDK 서 비 스 를 중지 합 니 다.
stopService(context).SDK 서 비 스 를 중단 한 후 서 비 스 는 실행 을 중지 하지 않 고 푸 시 와 인터넷 기능 을 중지 합 니 다.다시 시작 하려 면 initalize()방법 이나 turnPush()방법 을 사용 해 야 합 니 다.
GeTuiPushReceiver.init(getApplicationContext());pushManager = PushManager.getInstance();pushManager.stopService(this);
기본 적 인 것 은 모두 소 개 했 습 니 다.그리고 일부 설정 라벨,침묵 시간,별명 을 연결 하 는 것 도 있 습 니 다.여러분 이 관심 이 있 으 면 직접 연구 해 보 세 요.어쨌든 저 는 아직 사용 하지 못 했 습 니 다.그래서 이 몇 가지 모듈 을 움 직 이지 않 겠 습 니 다.푸 시 백 을 어떻게 사용 하여 푸 시 를 실현 하 는 지 알 아 보 겠 습 니 다.

먼저,우 리 는 자신의 응용 프로그램 을 만들어 야 합 니 다.그리고 우 리 는 응용 설정 에서 우리 가 원 하 는 데 이 터 를 얻 을 수 있 습 니 다.구체 적 인 효 과 는 다음 과 같 습 니 다.

여기 에는 우리 가 원 하 는 데이터,AppId,AppKey 등 이 있 습 니 다.이 물건 들 은 모두 AndroidManifest 파일 에서 설정 해 야 합 니 다.자신 이 Demo 를 만 든 후에 배경 을 통 해 푸 시 를 보 낼 수 있 습 니 다.

제목 과 내용 은 모두 필수 항목 입 니 다.그리고 계속 확인 하면 됩 니 다.그러면 메 시 지 는 추 송 됩 니 다.App 에서 푸 시 서 비 스 를 열 면 푸 시 를 받 을 수 있 습 니 다.메 시 지 를 전달 하면 캡 처 하지 않 겠 습 니 다.주의해 야 할 것 은 투 전 메 시 지 는 제 이 슨 형식의 문자열 입 니 다.추 가 는 제 이 슨 의 포맷 도 구 를 제공 합 니 다.
마지막 으로 소스 코드 를 올 리 면 이 소스 코드 는 실행 할 수 없습니다.여 기 는 제 백 엔 드 를 사용 하기 때문에 여러분 도 계 정 을 만 들 고 자신의 백 엔 드 로 애플 리 케 이 션 을 만 든 다음 에 AndroidManifest 파일 에 있 는 AppId,AppKey,AppSecret 를 수정 해 야 합 니 다.그리고 내부 에 많은 문 서 를 제공 하여 여러분 이 통합 하 는 데 도움 을 주 었 습 니 다다운로드 클릭

좋은 웹페이지 즐겨찾기