Android 는 푸 시 를 사용 하여 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 를 수정 해 야 합 니 다.그리고 내부 에 많은 문 서 를 제공 하여 여러분 이 통합 하 는 데 도움 을 주 었 습 니 다다운로드 클릭
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.