MixPush

Android 混合推送SDK,快速集成6个厂商推送,共享系统推送通道,杀死也能收到推送,推送到达率90%以上

APACHE-2.0 License

Stars
1.1K

MixPushSDK90%

APPAPPIssue

  1. OPPOVIVO

  2. APP90%

  3. Java

  4. SDK2

SDKSDKAPPAPP

APP618APPSDK

APPAPPAPPAPPAPPAPPAPPMixPush

/
Android
EMUI4.04.1EMUI5.0
OPPO OPPOColorOS3.1
VIVO VIVO Android 9.0 9.0
Flyme
APNs
APNs APNs
  1. SDK
  2. regId
  3. SDKAPPAndroid
  4. APNs3APP
  5. iOS

Android

build.gradle

buildscript {
    repositories {
      	...
        mavenCentral()
        maven { url 'http://developer.huawei.com/repo/' }
    }
    dependencies {
        ...
        classpath 'com.huawei.agconnect:agcp:1.6.0.300'
    }
}
allprojects {
    repositories {
        ...
        mavenCentral()
        jcenter()
        maven { url 'http://developer.huawei.com/repo/' }
    }
}

app build.gradle

VIVOAPP_IDAPP_KEYOPPO APP_KEY APP_SECRET

apply plugin: 'com.huawei.agconnect'
android {
    compileSdkVersion 31
    defaultConfig {
        ...
        manifestPlaceholders["VIVO_APP_ID"] = "<VIVO_APP_ID>"
        manifestPlaceholders["VIVO_APP_KEY"] = "<VIVO_APP_KEY>"
        manifestPlaceholders["MI_APP_ID"] = "<MI_APP_ID>"
        manifestPlaceholders["MI_APP_KEY"] = "<MI_APP_KEY>"
        manifestPlaceholders["OPPO_APP_KEY"] = "<OPPO_APP_KEY>"
        manifestPlaceholders["OPPO_APP_SECRET"] = "<OPPO_APP_SECRET>"
        manifestPlaceholders["MEIZU_APP_ID"] = "<MEIZU_APP_ID>"
        manifestPlaceholders["MEIZU_APP_KEY"] = "<MEIZU_APP_KEY>"
    }
}
dependencies {
    def mixpush_version = '2.4.0'
    implementation "io.github.mixpush:mixpush-core:$mixpush_version" // 
    implementation "io.github.mixpush:mixpush-mi:$mixpush_version" // 
    implementation "io.github.mixpush:mixpush-meizu:$mixpush_version"  // 
    implementation "io.github.mixpush:mixpush-huawei:$mixpush_version"  // 
    implementation "io.github.mixpush:mixpush-oppo:$mixpush_version"  // OPPO
    implementation "io.github.mixpush:mixpush-vivo:$mixpush_version"  // VIVO
}

3

  1. agconnect-services.jsonapp
  2. SHA256 ** 6003 **
  3. ** 907135702**

public class MyPushReceiver extends MixPushReceiver {
    @Override
    public void onRegisterSucceed(Context context, MixPushPlatform mixPushPlatform) {
        // regId
        //MixPushClient.getInstance().getRegisterId
    }

    @Override
    public void onNotificationMessageClicked(Context context, MixPushMessage message) {
      // TODO 
    }
}

Application

// 
//MixPush.getInstance().setLogger(new PushLogger(){});
MixPush.getInstance().setPushReceiver(new MyPushReceiver());
// 5OPPOVIVO
MixPush.getInstance().register(this);

regIdonCreate,regId

MixPushClient.getInstance().getRegisterId(this, new GetRegisterIdCallback() {
    public void callback(MixPushPlatform platform) {
        if (platform != null) {
            Log.e("GetRegisterIdCallback", platform.toString());
            // TODO regId
        }
    }
});
  1. onRegisterSucceedgetRegisterId RegId
  2. onNotificationMessageClicked

# MixPush
-keep class com.mixpush.mi.MiPushProvider {*;}
-keep class com.mixpush.meizu.MeizuPushProvider {*;}
-keep class com.mixpush.huawei.HuaweiPushProvider {*;}
-keep class com.mixpush.oppo.OppoPushProvider {*;}
-keep class com.mixpush.vivo.VivoPushProvider {*;}
 
# 
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.huawei.hianalytics.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}

# 
-keep class com.xiaomi.**{*;}

# OPPO
-keep public class * extends android.app.Service
-keep class com.heytap.msp.** { *;}

# VIVO
-dontwarn com.vivo.push.** 
-keep class com.vivo.push.**{*; } 
-keep class com.vivo.vms.**{*; }

# 
-keep class com.meizu.**{*;}

Java

  1. APPapiRegIdregId
  2. RegId
  3. 3APP
<dependencies>
    <dependency>
        <groupId>io.github.mixpush</groupId>
        <artifactId>mixpush-sender</artifactId>
        <version>2.3.9</version>
    </dependency>
</dependencies>
class MixPushServerExample {
    public static void main(String[] args) {
        MixPushSender sender = new MixPushSender.Builder()
                .packageName("<packageName>")
                .mi("<appSecretKey>",false)
                .meizu("<appId>", "<appSecretKey>")
                .huawei("<appId>", "<appSecretKey>")
                .oppo("<appKey>", "<masterSecret>")
                .vivo("<appId>", "<appKey>", "<appSecretKey>")
                .miAPNs("<appSecretKey>")
                .test(true)
                .build();
        MixPushMessageConfig activitiesMessageConfig = new MixPushMessageConfig.Builder()
                // OPPO   
                .oppoPushChannelId("activities")
                .build();
        MixPushMessage message = new MixPushMessage.Builder()
                .title("")
                .description("")
                .payload("{\"url\":\"http://github.com/taoweiji\"}")
                .config(activitiesMessageConfig)
                .build();
      	MixPushTarget target = MixPushTarget.single("mi","xxxx");
        sender.sendNotificationMessage(message,target);
    }
}
MixPushMessageConfig.Builder
huaweiPushChannelId
vivoSystemMessage falsetrue
timeToLive 72
miPushChannelId IM
oppoPushChannelId OPPO
MixPushMessage.Builder
title passThroughfalse
description passThroughfalse
payload json
passThrough falsetrue
messageId Result
config ChannelId

  1. MIUI10000``MIUI*5
  2. `/
  3. miAPNSAndroid
OPPO
  1. *2
  2. OPPO PUSH
VIVO
  1. vivo7:00-23:007:00-22:00
  2. 5
  3. SDKSDK100001000010000SDK
  4. vivoSystemMessagefalse
  1. regId3APPregId
APNs
  1. APNs
APNs
  1. regId6APPregId

IM

  1. 2
  2. iOS

mihuaweiok- error

Android OPPO VIVO
4.4 mi, ok mi, ok - mi, ok mi, ok -
5.x mi, ok mi, ok meizu, ok mi, ok mi, ok mi, ok
6.x mi, ok mi, ok meizu, ok mi, ok mi, ok -
7.x mi, ok huawei, ok meizu, ok oppo, ok mi, ok mi, ok
8.x mi, ok huawei, ok meizu, ok oppo, ok mi, ok mi, ok
9.x mi, ok huawei, ok meizu, ok oppo, ok vivo, ok oppo, ok
10.x mi, ok huawei, ok meizu, ok oppo, ok vivo, ok oppo, ok

TODO

  • Google FCM
  • FlutterAndroid iOS
  • APNS iOS
Package Rankings
Top 14.84% on Repo1.maven.org
Badges
Extracted from project README
Download
Related Projects