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>
됐 습 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.