+420 603 755 610
info@inited.cz
INITED Solutions s.r.o.
  • Domů
  • Služby
    • Vývoj mobilních aplikací
    • Záchrana projektů
    • Konzultace
    • Provoz a rozvoj mobilních aplikací
  • Pro agentury
  • Ukázky naší práce
  • Blog
  • Kontakt

Příjem push notifikací na Huawei

Home Wiki Příjem push notifikací na Huawei

Do parent build.gradle přidat:

buildscript {
    repositories {
        google()
        jcenter()
        maven {url 'http://developer.huawei.com/repo/'}
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.0.0"
        classpath 'com.huawei.agconnect:agcp:1.4.0.300'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'http://developer.huawei.com/repo/' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}


Projektový build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    buildToolsVersion "30.0.0"

    defaultConfig {
        applicationId "cz.inited.test.huawei.push"
        minSdkVersion 23
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
    }

}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.huawei.hms:push:4.0.3.301'
}

apply plugin: 'com.huawei.agconnect'




Do aktivity přidat HMS knihovny:

import com.huawei.agconnect.config.AGConnectServicesConfig;
import com.huawei.agconnect.config.LazyInputStream;
import com.huawei.hms.aaid.HmsInstanceId;
import com.huawei.hms.common.ApiException;


Do app/src/main/assets vložit soubor agconnect-services.json , který obsahuje ID aplikace:

{
        "client":{
                "cp_id":"519042000*****1224430",
                "product_id":"736430******123209181",
                "client_id":"43485382*****12388016",
                "client_secret":"272CC3*************123E3A5D85BB9B649BADF98D781E2453",
                "app_id":"10*****27123",
                "package_name":"cz.inited.test.huawei.push",
                "api_key":"CgB6e3x*************9lVnzBnCnPhoW1j6CLaGrRIJzihva6VJcj3eTd/zZotgflrQC1aA212312312"
        },
        "configuration_version":"1.0"
}


Načíst soubor v hlavní aktivitě:

    @Override
    protected void attachBaseContext(Context context) {
        super.attachBaseContext(context);
        AGConnectServicesConfig config = AGConnectServicesConfig.fromContext(context);
        config.overlayWith(new LazyInputStream(context) {
            public InputStream get(Context context) {
                try {
                    return context.getAssets().open("agconnect-services.json");
                } catch (IOException e) {
                    Log.e(TAG, "Cannot open agconnect-services.json", e);
                    return null;
                }
            }
        });
    }


Získat token pro odesílání push notifikací:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final Context ctx = this;

        new Thread() {
            @Override
            public void run() {
                try {
                    // read from agconnect-services.json
                    String appId = AGConnectServicesConfig.fromContext(ctx).getString("client/app_id");
                    Log.i(TAG, "GET appId:" + appId);
                    String token = HmsInstanceId.getInstance(ctx).getToken(appId, "HCM");
                    Log.i(TAG, "GET token:" + token);
                } catch (ApiException e) {
                    Log.e(TAG, "GET token failed, " + e);
                }
            }
        }.start();
    }




  • Domů
  • Služby
  • Blog
  • Ukázky naší práce
  • Kontakt
© 2023 Created by Provocado