Android 좁쌀 푸 시 간단 한 사용 방법

6878 단어 Android푸 시
회사 의 프로젝트 는 푸 시 를 해 야 한다.우 리 는 샤 오미 로 푸 시 를 선택 했다.한 동안 의 모색 끝 에 샤 오미 로 푸 시 를 간단하게 사용 할 수 있 게 되 었 다.
1.계 정 생 성 후 로그 인 후 메시지 전송 선택:

2.입장 후 프로젝트 를 만 들 고 절차 에 따라 다음 과 같이 만 듭 니 다.

3.배경 설정 이 완료 되 었 습 니 다.우 리 는 코드 를 다시 설정 합 니 다.처음으로 샤 오미 로 저 에 게 데 모 를 보 내 고 그 안에 있 는 유용 한 것 을 자신의 프로젝트 에 복사 합 니 다.
먼저 jar 가방 을 자신의 항목 에 복사 합 니 다.

우선 애플 리 케 이 션 을 계승 한 클래스 에 넣 었 습 니 다.

private static final String APP_ID = "2882303761517483058"; 
 // user your appid the key. 
 private static final String APP_KEY = "5951748376058"; 
 
 //  TAG adb logcat           ,            adb logcat | grep 
 // com.xiaomi.mipushdemo 
 public static final String TAG = "com.dodonew.epapp"; 
Id 와 key 같은 것 은 샤 오미 오픈 플랫폼 에서 프로젝트 를 만들어 서 얻 은 것 입 니 다.
Appliction 의 oncreate()방법 에 추가:

if (shouldInit()) { 
   MiPushClient.registerPush(this, APP_ID, APP_KEY); 
  } 
  LoggerInterface newLogger = new LoggerInterface() { 
 
   @Override 
   public void setTag(String tag) { 
    // ignore 
   } 
 
   @Override 
   public void log(String content, Throwable t) { 
    Log.d(TAG, content, t); 
   } 
 
   @Override 
   public void log(String content) { 
    Log.d(TAG, content); 
   } 
  }; 
  Logger.setLogger(this, newLogger); 
  if (sHandler == null) { 
   sHandler = new DemoHandler(getApplicationContext()); 
  } 
그 중에서 shouldInit()와 Handler:

private boolean shouldInit() { 
  ActivityManager am = ((ActivityManager) getSystemService(Context.ACTIVITY_SERVICE)); 
  List<RunningAppProcessInfo> processInfos = am.getRunningAppProcesses(); 
  String mainProcessName = getPackageName(); 
  int myPid = Process.myPid(); 
  for (RunningAppProcessInfo info : processInfos) { 
   if (info.pid == myPid && mainProcessName.equals(info.processName)) { 
    return true; 
   } 
  } 
  return false; 
 } 
 
 public static DemoHandler getHandler() { 
  return sHandler; 
 } 
 public static class DemoHandler extends Handler { 
 
  private Context context; 
 
  public DemoHandler(Context context) { 
   this.context = context; 
  } 
 
  @Override 
  public void handleMessage(Message msg) { 
   String s = (String) msg.obj; 
   if (sMainActivity != null) { 
    sMainActivity.refreshLogInfo(); 
   } 
   if (!TextUtils.isEmpty(s)) { 
    // Toast.makeText(context, s, Toast.LENGTH_LONG).show(); 
   } 
  } 
 } 
솔직히 Demohander 는 사실 아무 소 용이 없어 요.주로 toast 힌트 가 나 올 뿐 이에 요.저 는 싫어 서 toast 를 숨 겼 어 요.
그 중에서 MainActivity 의 refreshLogInfo()방법:

public void refreshLogInfo() { 
  String AllLog = ""; 
  for (String log : logList) { 
   AllLog = AllLog + log + "

"; } System.out.println("mainActivity ::::::::"+AllLog); }
그런 후에 우 리 는 데모 중의 한 방송 류 를 복사 해 야 한다.내용 이 같 기 때문에 나 는 복사 하지 않 을 것 이다.
중요 한 방법 이 있 습 니 다.onNotificationMessage Clicked(Context context,MiPushMessage message message)
이 방법 은 메시지 가 휴대 전화 로 전 달 될 때 알림 표시 줄 에서 이 메 시 지 를 클릭 하면 이 방법 에서 메시지 의 내용 을 얻 을 수 있다 는 것 이다.
두 번 째 는 알림 표시 줄 에 있 는 메 시 지 를 클릭 하여 app 에서 지정 한 인터페이스 로 이동 하고 싶 습 니 다.이 방법 에서 실행 하려 면 코드 만 추가 하면 됩 니 다.

Intent intent = new Intent(context,    Activity.class); 
  intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
  context.startActivity(intent); 
마지막 으로 우 리 는 AndroidManifest.xml 를 설정 하 러 갈 것 이다.
일부 권한 은 제 가 놓 지 않 겠 습 니 다.예전 의 권한 과 함께 놓 으 면 구분 하기 어렵 습 니 다.데모 에서 찾 아 보 세 요.
권한 아래 에 놓 기

<permission 
  android:name="com.dodonew.epapp.permission.MIPUSH_RECEIVE" 
  android:protectionLevel="signature" /> 
 
 <uses-permission android:name="com.dodonew.epapp.permission.MIPUSH_RECEIVE" /> 
 <uses-permission android:name="android.permission.VIBRATE" /> 
에 추가

<service 
   android:name="com.xiaomi.push.service.XMJobService" 
   android:enabled="true" 
   android:exported="false" 
   android:permission="android.permission.BIND_JOB_SERVICE" 
   android:process=":pushservice" /> 
 
  <service 
   android:name="com.xiaomi.push.service.XMPushService" 
   android:enabled="true" 
   android:process=":pushservice" /> 
 
  <service 
   android:name="com.xiaomi.mipush.sdk.PushMessageHandler" 
   android:enabled="true" 
   android:exported="true" /> 
  <service 
   android:name="com.xiaomi.mipush.sdk.MessageHandleService" 
   android:enabled="true" /> 
 
  <receiver 
   android:name="com.dodonew.epapp.control.receiver.XiaoMiMessageReceiver" 
   android:exported="true"> 
   <intent-filter> 
    <action android:name="com.xiaomi.mipush.RECEIVE_MESSAGE" /> 
   </intent-filter> 
   <intent-filter> 
    <action android:name="com.xiaomi.mipush.MESSAGE_ARRIVED" /> 
   </intent-filter> 
   <intent-filter> 
    <action android:name="com.xiaomi.mipush.ERROR" /> 
   </intent-filter> 
  </receiver> 
  <receiver 
   android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver" 
   android:exported="true"> 
   <intent-filter> 
    <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
 
    <category android:name="android.intent.category.DEFAULT" /> 
   </intent-filter> 
  </receiver> 
  <receiver 
   android:name="com.xiaomi.push.service.receivers.PingReceiver" 
   android:exported="false" 
   android:process=":pushservice"> 
   <intent-filter> 
    <action android:name="com.xiaomi.push.PING_TIMER" /> 
   </intent-filter> 
  </receiver> 
됐 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기