メーカーチャネルSDK統合ガイド

このドキュメントは、自動統合方法を使用してさまざまなメーカーチャネルのSDKを統合し、オフラインプッシュ通知を実現するためのガイドを顧客に提供することを目的としています。

SDKのダウンロードについては、リソースダウンロードを参照してください。 最新のSDKバージョン番号については、更新履歴を参照してください。

前提条件

  1. Engagelabチャネルがすでに統合されている。
  2. メーカーのSDKを統合する前に、関連するメーカーチャネルパラメータを申請する必要があります。詳細については、メーカーチャネルパラメータ申請ガイドを参照してください。

リソースファイル

  • mtpush_notification_icon.pngという名前の通知アイコンをres/drawable/の下に配置します。設定されていない場合、SDKはアプリケーションアイコンを使用し、Androidの高バージョンでは表示上の問題が発生する可能性があります。

Xiaomiチャネル統合ガイド

mavenCentralのサポートを設定

Projectルートディレクトリのメインgradleファイルで、mavenCentralのサポートを設定します。(新しいプロジェクトは通常、デフォルトでこのサポートが設定されています。)

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {  
    repositories {  
        mavenCentral()  
    }  
}  

allprojects {
    repositories {  
        mavenCentral()  
    } 
}

            
このコードブロックはフローティングウィンドウ内に表示されます

依存関係を設定

アプリケーションモジュールのgradleファイルのdependenciesセクションに、次のコードを追加します:

dependencies { // メーカーバージョンはEngagelab SDKバージョンと一致する必要があります implementation 'com.engagelab.plugin:mi:5.x.x' }
              
              dependencies {
    // メーカーバージョンはEngagelab SDKバージョンと一致する必要があります
    implementation 'com.engagelab.plugin:mi:5.x.x'
}

            
このコードブロックはフローティングウィンドウ内に表示されます

パラメータを設定

アプリケーションモジュールのgradleファイルのdefaultConfigセクションに、次のコードを追加します:

manifestPlaceholders = [ // manifest.xmlファイルの変数を設定 XIAOMI_APPKEY : "MI-Your Xiaomi app's APPID", // Xiaomiプラットフォームに登録されたappkey XIAOMI_APPID : "MI-Your Xiaomi app's APPKEY", // Xiaomiプラットフォームに登録されたappid ]
              
              manifestPlaceholders = [
    // manifest.xmlファイルの変数を設定
    XIAOMI_APPKEY : "MI-Your Xiaomi app's APPID", // Xiaomiプラットフォームに登録されたappkey
    XIAOMI_APPID : "MI-Your Xiaomi app's APPKEY", // Xiaomiプラットフォームに登録されたappid
]

            
このコードブロックはフローティングウィンドウ内に表示されます

コード難読化を設定

proguardを使用している場合は、設定ファイルに次の内容を追加し、誤った警告レポートによってコンパイルが失敗するのを防ぎます:

-dontwarn com.xiaomi.push.** -keep class com.xiaomi.push.** { *; }
              
              -dontwarn com.xiaomi.push.**
-keep class com.xiaomi.push.** { *; }

            
このコードブロックはフローティングウィンドウ内に表示されます

統合成功の検証

統合が成功した場合、ログに次の内容が表示されます:

D [MTMiBusiness] support xiaomi push D [MTMiBusiness] onTokenSuccess:get token is Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=1, token=Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj region=NULL isUserSettings=false }
              
              D  [MTMiBusiness] support xiaomi push
D  [MTMiBusiness] onTokenSuccess:get token is Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=1,
    token=Tv3KBknVcnEaXnLe89MGEH3SWVgUYdLDYzJaST30IoIGATl2tv5eu6iuT/PTO0Mj
    region=NULL
    isUserSettings=false
}

            
このコードブロックはフローティングウィンドウ内に表示されます

Xiaomi Android 13以降の特別な注意事項

  • Xiaomiの公式ドキュメントによると、Android 13以降では、アプリケーションの起動方法がIntentフィルターと正確に一致する必要があり、Xiaomiデバイスでのアプリケーションの適切な動作を保証します。

    Android 13以降のIntentフィルターの詳細については、Googleの公式ドキュメントを参照してください:Google公式ドキュメント - Intentフィルター

  • 開発者のテスト推奨事項:
    開発者はXiaomiデバイスの開発者オプションで「アプリケーション互換性変更」を確認し、テスト中にENFORCE_INTENTS_TO_MATCH_INTENT_FILTERSオプションを有効にして、すべてのケースでアプリが正しく動作することを保証できます。

Huaweiチャネル統合ガイド

mavenCentralのサポートを設定

Projectルートディレクトリのメインgradleファイルで、mavenCentralのサポートとagconnectの依存関係を設定します。

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

            
このコードブロックはフローティングウィンドウ内に表示されます

(オプション)gradle 8.0を使用している場合は、プロジェクトレベルのgradle.propertiesファイルに次のコマンドを追加します:

注意: AGCプラグインのバージョンが1.9.1.300より低い場合は、gradle 8.0の互換性がサポートされていません。この手順を実行する必要があります。

apmsInstrumentationEnabled=false
              
              apmsInstrumentationEnabled=false

            
このコードブロックはフローティングウィンドウ内に表示されます

Huaweiプラグインを追加

アプリケーションモジュールのbuild.gradleファイルの下部に、次の行を追加してgradleプラグインを有効にします:

apply plugin: 'com.huawei.agconnect'
              
              apply plugin: 'com.huawei.agconnect'

            
このコードブロックはフローティングウィンドウ内に表示されます

依存関係を設定

アプリケーションモジュールのgradleファイルのdependenciesセクションに、次のコードを追加し、Huaweiのリリースに基づいて最新バージョンを選択します:

dependencies { implementation 'com.huawei.hms:push:6.11.0.300' // メーカーバージョンはAppPush SDKバージョンと一致する必要があります implementation 'com.engagelab.plugin:huawei:5.x.x' }
              
              dependencies {
    
    implementation 'com.huawei.hms:push:6.11.0.300'
    
    // メーカーバージョンはAppPush SDKバージョンと一致する必要があります
    implementation 'com.engagelab.plugin:huawei:5.x.x'
}

            
このコードブロックはフローティングウィンドウ内に表示されます

agconnect-services.jsonファイルを設定

メーカーチャネルパラメータ申請ガイドを参照して、agconnect-services.jsonファイルを取得し、appディレクトリに設定します。

alt text

署名証明書を設定

build.gradleファイルで、Huaweiバックエンドに追加された指紋証明書に対応する署名を設定します。

HMSサービスは、アプリが登録に成功するために署名されている必要があります。コマンドkeytool -list -v -keystore keystorefileNameを使用して、対応する指紋証明書を取得できます。

signingConfigs { release { storeFile file("release.keystore") // 署名ファイルへのパス storePassword "123456" keyAlias "android.keystore" keyPassword "123456" } } buildTypes { release { minifyEnabled true proguardFiles 'proguard-rules.pro' signingConfig signingConfigs.release } debug{ minifyEnabled false signingConfig signingConfigs.release } }
              
              signingConfigs {
        release {
            storeFile file("release.keystore") // 署名ファイルへのパス
            storePassword "123456"
            keyAlias "android.keystore"
            keyPassword "123456"
        }
}

buildTypes {
        release {
            minifyEnabled true
            proguardFiles 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug{
          minifyEnabled false
           signingConfig signingConfigs.release
        }
 }

            
このコードブロックはフローティングウィンドウ内に表示されます

コード難読化を設定

proguardを使用している場合は、設定ファイルに次の内容を追加し、誤った警告レポートによってコンパイルが失敗するのを防ぎます:

-ignorewarnings -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.hianalytics.android.**{*;} -keep class com.huawei.updatesdk.**{*;} -keep class com.huawei.hms.**{*;}
              
              -ignorewarnings
-keepattributes *Annotation* 
-keepattributes Exceptions 
-keepattributes InnerClasses 
-keepattributes Signature 
-keepattributes SourceFile,LineNumberTable 
-keep class com.hianalytics.android.**{*;} 
-keep class com.huawei.updatesdk.**{*;} 
-keep class com.huawei.hms.**{*;}

            
このコードブロックはフローティングウィンドウ内に表示されます

AndResGuardを使用している場合は、難読化設定ファイルにAndResGuardホワイトリストを追加します。

"R.string.hms*", "R.string.connect_server_fail_prompt_toast", "R.string.getting_message_fail_prompt_toast", "R.string.no_available_network_prompt_toast", "R.string.third_app_*", "R.string.upsdk_*", "R.layout.hms*", "R.layout.upsdk_*", "R.drawable.upsdk*", "R.color.upsdk*", "R.dimen.upsdk*", "R.style.upsdk*", "R.string.agc*"
              
              "R.string.hms*",
"R.string.connect_server_fail_prompt_toast",
"R.string.getting_message_fail_prompt_toast",
"R.string.no_available_network_prompt_toast",
"R.string.third_app_*",
"R.string.upsdk_*",
"R.layout.hms*",
"R.layout.upsdk_*",
"R.drawable.upsdk*",
"R.color.upsdk*",
"R.dimen.upsdk*",
"R.style.upsdk*",
"R.string.agc*"

            
このコードブロックはフローティングウィンドウ内に表示されます

統合成功の検証

統合が成功した場合、ログに次の内容が表示されます:

D [MTHuaweiBusiness] support huawei push D [MTHuaweiBusiness] onTokenSuccess:get token is IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=2, token=IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA region=NULL isUserSettings=false }
              
              
D  [MTHuaweiBusiness] support huawei push
D  [MTHuaweiBusiness] onTokenSuccess:get token is IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=2,
    token=IQAAAACy0aL1AABEZ3l2C7jluCGX5XriooCvoOwK9TrjG1MTpH0CD47WPXFcAbtt3DdOeOPvX6d7xfAVctoyaOCGKRllRa-0RBP7WQrYI6SxnOp1GA
    region=NULL
    isUserSettings=false
}

            
このコードブロックはフローティングウィンドウ内に表示されます

Huaweiチャネルのテスト方法

  1. 「EngageLabコンソール」->「AppPush」->「基本設定」->「統合設定」ページに移動し、パラメータ(AppID、AppSecret)を入力し、「保存」をクリックします。

alt text 2. アプリプロセスを強制終了した後、プッシュを実行します。プッシュを受信した場合は、メーカーチャネルの統合が成功しています。

Meizuチャネル統合ガイド

mavenCentralのサポートを設定

Projectルートディレクトリのメインgradleファイルで、mavenCentralのサポートを設定します。(新しいプロジェクトは通常、デフォルトでこのサポートが設定されています。)

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {  
    repositories {  
        mavenCentral()  
    }  
}  

allprojects {
    repositories {  
        mavenCentral()  
    } 
}

            
このコードブロックはフローティングウィンドウ内に表示されます

依存関係を設定

アプリケーションモジュールのgradleファイルのdependenciesセクションに、次のコードを追加します:

dependencies { // メーカーバージョンはAppPush SDKバージョンと一致する必要があります implementation 'com.engagelab.plugin:meizu:5.x.x' }
              
              dependencies {
  // メーカーバージョンはAppPush SDKバージョンと一致する必要があります
  implementation 'com.engagelab.plugin:meizu:5.x.x'
}

            
このコードブロックはフローティングウィンドウ内に表示されます

パラメータを設定

アプリケーションモジュールのgradleファイルのdefaultConfigセクションに、次のコードを追加します:

Meizuのパラメータには「MZ-」プレフィックスを付ける必要があります。

manifestPlaceholders = [ // manifest.xmlファイルの変数を設定 MEIZU_APPKEY : "MZ-Your Meizu app's APPKEY", // Meizuプラットフォームに登録されたappkey MEIZU_APPID : "MZ-Your Meizu app's APPID", // Meizuプラットフォームに登録されたappid ]
              
              manifestPlaceholders = [
     // manifest.xmlファイルの変数を設定
     MEIZU_APPKEY : "MZ-Your Meizu app's APPKEY", // Meizuプラットフォームに登録されたappkey
     MEIZU_APPID : "MZ-Your Meizu app's APPID", // Meizuプラットフォームに登録されたappid
]

            
このコードブロックはフローティングウィンドウ内に表示されます

コード難読化を設定

proguardを使用している場合は、設定ファイルに次の内容を追加し、誤った警告レポートによってコンパイルが失敗するのを防ぎます:

-dontwarn com.meizu.cloud.** -keep class com.meizu.cloud.** { *; }
              
              -dontwarn com.meizu.cloud.**
-keep class com.meizu.cloud.** { *; }

            
このコードブロックはフローティングウィンドウ内に表示されます

統合成功の検証

統合が成功した場合、ログに次の内容が表示されます:

D [MTMeizuBusiness] support meizu push D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=3, token=DDI5c060475064d447b40670206756d73605705037205 region=NULL isUserSettings=false }
              
              
D  [MTMeizuBusiness] support meizu push
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=3,
    token=DDI5c060475064d447b40670206756d73605705037205
    region=NULL
    isUserSettings=false
}

            
このコードブロックはフローティングウィンドウ内に表示されます

Meizuチャネルでトークンを取得できない場合は、gradle.propertiesandroid.enableR8 = falseを追加してR8を無効にしてみてください。

Meizuメーカーのテスト方法

  1. 「EngageLabコンソール」->「AppPush」->「基本設定」->「統合設定」ページに移動し、パラメータ(AppKey、AppID、AppSecret)を入力し、「保存」をクリックします。 alt text

  2. アプリプロセスを強制終了した後、プッシュを実行します。プッシュを受信した場合は、メーカーチャネルの統合が成功しています。

Vivoチャネル統合ガイド

mavenCentralのサポートを設定

Projectルートディレクトリのメインgradleファイルで、mavenCentralのサポートを設定します。(新しいプロジェクトは通常、デフォルトでこのサポートが設定されています。)

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {  
    repositories {  
        mavenCentral()  
    }  
}  

allprojects {
    repositories {  
        mavenCentral()  
    } 
}

            
このコードブロックはフローティングウィンドウ内に表示されます

依存関係を設定

アプリケーションモジュールのgradleファイルのdependenciesセクションに、次のコードを追加します:

dependencies{ // メーカーバージョンはAppPush SDKバージョンと一致する必要があります implementation 'com.engagelab.plugin:vivo:5.x.x' }
              
              dependencies{  
    // メーカーバージョンはAppPush SDKバージョンと一致する必要があります
    implementation 'com.engagelab.plugin:vivo:5.x.x'
} 

            
このコードブロックはフローティングウィンドウ内に表示されます

パラメータを設定

アプリケーションモジュールのgradleファイルのdefaultConfigセクションに、次のコードを追加します:

manifestPlaceholders=[ VIVO_APPKEY : "Your Vivo app's APPKEY", // Vivoプラットフォームに登録されたappkey VIVO_APPID : "Your Vivo app's APPID", // Vivoプラットフォームに登録されたappid ]
              
              manifestPlaceholders=[  
    VIVO_APPKEY : "Your Vivo app's APPKEY", // Vivoプラットフォームに登録されたappkey
    VIVO_APPID : "Your Vivo app's APPID", // Vivoプラットフォームに登録されたappid
] 

            
このコードブロックはフローティングウィンドウ内に表示されます

統合成功の検証

統合が成功した場合、ログに次の内容が表示されます:

D [MTVivoBusiness] support vivo push D [MTVivoBusiness] getRegId onTokenSuccess:get token is v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=5, token=v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ region=NULL isUserSettings=false }
              
              D  [MTVivoBusiness] support vivo push
D  [MTVivoBusiness] getRegId onTokenSuccess:get token is v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=5,
    token=v2-CRrhwCeK9eY77H6m_EeUqz3zGqmbh0LJPnhvsF0V-ia9OmMHQP9FGCjZ
    region=NULL
    isUserSettings=false
}

            
このコードブロックはフローティングウィンドウ内に表示されます

コード難読化を設定

proguardを使用している場合は、設定ファイルに次の内容を追加し、誤った警告レポートによってコンパイルが失敗するのを防ぎます:

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

            
このコードブロックはフローティングウィンドウ内に表示されます

Vivoチャネルのテスト方法

  1. 「EngageLabコンソール」->「AppPush」->「基本設定」->「統合設定」ページに移動し、パラメータ(AppKey、AppID、AppSecret)を入力し、「保存」をクリックします。

alt text 2. アプリプロセスを強制終了した後、プッシュを実行します。プッシュを受信した場合は、メーカーチャネルの統合が成功しています。

Vivoが市場に存在しない場合、プッシュをテストするには、Vivoオープンプラットフォームでプッシュテスト権限を申請する必要があります。各アプリは1日あたり1000件の公開メッセージをプッシュできます。

"options": { "classification": 1, "third_party_channel": { "vivo": { "pushMode": 1, // オプション、2020/09/21に追加。VivoのpushModeフィールドに対応し、整数値は「0」が正式プッシュ、「1」がテストプッシュで、デフォルトは0です。 "distribution_new": "pns_mtpush" } } }
              
               "options": {           
    "classification": 1,           
    "third_party_channel": {                
        "vivo": {                    
            "pushMode":  1, // オプション、2020/09/21に追加。VivoのpushModeフィールドに対応し、整数値は「0」が正式プッシュ、「1」がテストプッシュで、デフォルトは0です。                 
            "distribution_new": "pns_mtpush"                
        }            
    }        
}

            
このコードブロックはフローティングウィンドウ内に表示されます

OPPOチャネル統合ガイド

mavenCentralのサポートを設定

Projectルートディレクトリのメインgradleファイルで、mavenCentralのサポートを設定します。(新しいプロジェクトは通常、デフォルトでこのサポートが設定されています。)

buildscript { repositories { mavenCentral() } } allprojects { repositories { mavenCentral() } }
              
              buildscript {  
    repositories {  
        mavenCentral()  
    }  
}  

allprojects {
    repositories {  
        mavenCentral()  
    } 
}

            
このコードブロックはフローティングウィンドウ内に表示されます

依存関係を設定

アプリケーションモジュールのgradleファイルのdependenciesセクションに、次のコードを追加します:

dependencies{ // メーカーバージョンはAppPush SDKバージョンと一致する必要があります implementation 'com.engagelab.plugin:oppo:5.x.x' implementation 'com.engagelab.plugin:oppo_th_push:5.x.x' // OPPOは次の依存関係を追加する必要があります implementation 'com.google.code.gson:gson:2.8.9' implementation 'commons-codec:commons-codec:1.13' implementation 'androidx.annotation:annotation:1.1.0' }
              
              dependencies{  
    // メーカーバージョンはAppPush SDKバージョンと一致する必要があります
    implementation 'com.engagelab.plugin:oppo:5.x.x' 
    implementation 'com.engagelab.plugin:oppo_th_push:5.x.x' 

    // OPPOは次の依存関係を追加する必要があります
    implementation 'com.google.code.gson:gson:2.8.9'
    implementation 'commons-codec:commons-codec:1.13'
    implementation 'androidx.annotation:annotation:1.1.0'
} 

            
このコードブロックはフローティングウィンドウ内に表示されます

パラメータを設定

アプリケーションモジュールのgradleファイルのdefaultConfigセクションに、次のコードを追加します:

OPPOのパラメータには「OP-」プレフィックスを付ける必要があります。

manifestPlaceholders=[ OPPO_APPKEY : "OP-Your OPPO app's APPKEY", // OPPOプラットフォームに登録されたappkey OPPO_APPID : "OP-Your OPPO app's APPID", // OPPOプラットフォームに登録されたappid OPPO_APPSECRET: "OP-Your OPPO app's APPSECRET" // OPPOプラットフォームに登録されたappsecret ]
              
              manifestPlaceholders=[  
    OPPO_APPKEY : "OP-Your OPPO app's APPKEY", // OPPOプラットフォームに登録されたappkey
    OPPO_APPID : "OP-Your OPPO app's APPID", // OPPOプラットフォームに登録されたappid
    OPPO_APPSECRET: "OP-Your OPPO app's APPSECRET" // OPPOプラットフォームに登録されたappsecret
] 

            
このコードブロックはフローティングウィンドウ内に表示されます

コード難読化を設定

proguardを使用している場合は、設定ファイルに次の内容を追加し、誤った警告レポートによってコンパイルが失敗するのを防ぎます:

-dontwarn com.coloros.mcsdk.** -keep class com.coloros.mcsdk.** { *; } -dontwarn com.heytap.** -keep class com.heytap.** { *; } -dontwarn com.mcs.** -keep class com.mcs.** { *; }
              
              -dontwarn com.coloros.mcsdk.**
-keep class com.coloros.mcsdk.** { *; }

-dontwarn com.heytap.**
-keep class com.heytap.** { *; }

-dontwarn com.mcs.**
-keep class com.mcs.** { *; }

            
このコードブロックはフローティングウィンドウ内に表示されます

統合成功の検証

統合が成功した場合、ログに次の内容が表示されます:

D [MTOppoBusiness] support oppo push D [MTOppoBusiness] onTokenSuccess:get token is OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6 D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=4, token=OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6 region=NULL isUserSettings=false }
              
              
D  [MTOppoBusiness] support oppo push
D  [MTOppoBusiness] onTokenSuccess:get token is OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=4,
    token=OnePlus_CN_0e3c2f966c9d01d4e2423cbc9e7598b6
    region=NULL
    isUserSettings=false
}

            
このコードブロックはフローティングウィンドウ内に表示されます

OPPOチャネルのテスト方法

  1. 「EngageLabコンソール」->「App

Push」->「基本設定」->「統合設定」ページに移動し、パラメータ(AppKey、AppID、AppSecret、MasterSecret)を入力し、「保存」をクリックします。

alt text 2. アプリプロセスを強制終了した後、プッシュを実行します。プッシュを受信した場合は、メーカーチャネルの統合が成功しています。

アプリが利用可能でない場合、テストにはOPPOオープンプラットフォームでプッシュテスト権限を申請する必要があります。各アプリは1日あたり1000件の公開メッセージをプッシュできます。

FCMチャネル統合ガイド

mavenCentralのサポートを設定

Projectルートディレクトリのメインgradleファイルで、mavenCentralのサポートとgoogle-servicesの依存関係を設定します。

buildscript { repositories { mavenCentral() } dependencies { classpath 'com.google.gms:google-services:4.3.15' } } allprojects { repositories { mavenCentral() maven { url "https://maven.google.com" } } }
              
              buildscript {
    repositories {
        mavenCentral() 
    }
    dependencies {
        classpath 'com.google.gms:google-services:4.3.15'
    }
}

allprojects {
    repositories {
        mavenCentral()
        maven { url "https://maven.google.com" } 
    }
}

            
このコードブロックはフローティングウィンドウ内に表示されます

FCMプラグインを追加

アプリケーションモジュールのbuild.gradleファイルの下部に、次の行を追加してgradleプラグインを有効にします:

apply plugin: 'com.google.gms.google-services'
              
              apply plugin: 'com.google.gms.google-services'

            
このコードブロックはフローティングウィンドウ内に表示されます

依存関係を設定

アプリケーションモジュールのgradleファイルのdependenciesセクションに、次のコードを追加します:

dependencies { // メーカーバージョンはAppPush SDKバージョンと一致する必要があります implementation 'com.engagelab.plugin:google:5.x.x' implementation 'com.google.firebase:firebase-messaging:23.2.0' }
              
              dependencies {
    // メーカーバージョンはAppPush SDKバージョンと一致する必要があります
    implementation 'com.engagelab.plugin:google:5.x.x'
    implementation 'com.google.firebase:firebase-messaging:23.2.0'
}

            
このコードブロックはフローティングウィンドウ内に表示されます

アプリケーションモジュールのgradleファイルのandroidセクションに、次のコードを追加します:

android { // googleプッシュにはjava 1.8が必要です compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
              
              android {
    // googleプッシュにはjava 1.8が必要です
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

            
このコードブロックはフローティングウィンドウ内に表示されます

google-services.jsonファイルを設定

メーカーチャネルパラメータ申請ガイドを参照して、google-services.jsonファイルを取得し、appディレクトリに設定します。

alt text

FCM通知アイコンを設定

AndroidManifest.xmlファイルに次の設定を追加して、FCM通知アイコンを設定します。

<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/Your notification icon" />
              
              <meta-data android:name="com.google.firebase.messaging.default_notification_icon"  
     android:resource="@drawable/Your notification icon" />  

            
このコードブロックはフローティングウィンドウ内に表示されます

統合成功の検証

統合が成功した場合、ログに次の内容が表示されます:

D [MTGoogleBusiness] support google push D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=8, token=dj793yH_RO6FqNyKImQJYV:APA91bExj3PSVv50pwtl83LXVeB_HKOCSkyB6qCE12TIwIRl-RKiqCfXjvCshcqVrqn_8htlNBa8_A_8ixq7YIxfrloxig2BryZPCkunyx_z2drz0L-C2K8R7J8Yrojs61WCsF-BZj8h region=NULL isUserSettings=false }
              
              
D  [MTGoogleBusiness] support google push
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=8,
    token=dj793yH_RO6FqNyKImQJYV:APA91bExj3PSVv50pwtl83LXVeB_HKOCSkyB6qCE12TIwIRl-RKiqCfXjvCshcqVrqn_8htlNBa8_A_8ixq7YIxfrloxig2BryZPCkunyx_z2drz0L-C2K8R7J8Yrojs61WCsF-BZj8h
    region=NULL
    isUserSettings=false
}

            
このコードブロックはフローティングウィンドウ内に表示されます

FCMチャネルのテスト方法

  1. テストの前提条件:
  • フォンのシステムにはGoogle Playサービスがインストールされている必要があり、バージョンは17.3.4以上です。
  • テストには海外VPNに接続し、フォンのネットワークがGoogleにアクセスできることを確認する必要があります。
  • 国内のフォンを使用してテストする場合、アプリはバックグラウンドに保持する必要があります。アプリを閉じるとテストは失敗します。国内のメーカーはバックグラウンドのプロセスを強制終了する可能性があるためです。
  1. 「EngageLabコンソール」->「AppPush」->「基本設定」->「統合設定」ページに移動し、パラメータ(App Secret)を入力し、「保存」をクリックします。 alt text

  2. 中国国内でテストする場合は、初期化後に国コードを設定する必要があります。

public class ExampleApplication extends Application { @Override public void onCreate() { super.onCreate(); MTCorePrivatesApi.configDebugMode(this, true); // 国コードを設定する -- 本番環境ではこれを設定しないでください MTGlobal.setCountryCode("US"); // 初期化 MTPushPrivatesApi.init(this); } }
              
              public class ExampleApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
    
        MTCorePrivatesApi.configDebugMode(this, true);

        // 国コードを設定する -- 本番環境ではこれを設定しないでください
        MTGlobal.setCountryCode("US");
         
        // 初期化
        MTPushPrivatesApi.init(this);
        
    }
}

            
このコードブロックはフローティングウィンドウ内に表示されます
  1. AppPushバックエンドで、プッシュがFCMチャネルまたはEngagelabチャネルを介して送信されたかどうかを確認します。

alt text

Honorチャネル統合ガイド

mavenCentralのサポートを設定

Projectルートディレクトリのメインgradleファイルで、mavenCentralのサポートを設定します。(新しいプロジェクトは通常、デフォルトでこのサポートが設定されています。)

buildscript { repositories { ... mavenCentral() ... } } allprojets { repositories { ... mavenCentral() ... } }
              
              buildscript {
    repositories {
      ...
      mavenCentral()
      ...
    }
}

allprojets {
    repositories {
        ...
        mavenCentral()
        ...
    }
}

            
このコードブロックはフローティングウィンドウ内に表示されます

パラメータと依存関係を設定

プロジェクトモジュールのbuild.gradleファイルに、次のコードを追加します:

defaultConfig { ... manifestPlaceholders = [ ... HONOR_APPID : "Your Honor app's APP ID", // Honorプラットフォームに登録されたAPP ID ... ] ... } dependencies { ... // メーカーバージョンはAppPush SDKバージョンと一致する必要があります implementation 'com.engagelab.plugin:honor:5.x.x' implementation 'com.engagelab.plugin:honor_th_push:5.x.x' ... }
              
                defaultConfig {
        ...
        manifestPlaceholders = [
               ...
               HONOR_APPID : "Your Honor app's APP ID", // Honorプラットフォームに登録されたAPP ID
               ...
        ]
        ...
    }
  dependencies {
        ...
        // メーカーバージョンはAppPush SDKバージョンと一致する必要があります
        implementation 'com.engagelab.plugin:honor:5.x.x' 
        implementation 'com.engagelab.plugin:honor_th_push:5.x.x'
        ...
  }

            
このコードブロックはフローティングウィンドウ内に表示されます

署名証明書を設定

build.gradleファイルで、Honorバックエンドに追加された指紋証明書に対応する署名を設定します。

Honorサービスは、アプリが登録に成功するために署名されている必要があります。 コマンドkeytool -list -v -keystore <キーストアファイルへのパス>を使用して、対応する指紋証明書を取得できます。

統合成功の検証

統合が成功した場合、ログに次の内容が表示されます:

D [MTHonorBusiness] support honor push D [MTHonorBusiness] onTokenSuccess:get token is s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5 D [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken: { platform=7, token=s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5 region=NULL isUserSettings=false }
              
              
D  [MTHonorBusiness] support honor push
D  [MTHonorBusiness] onTokenSuccess:get token is s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5
D  [MTPlatformBusiness] onPlatformTokenSuccess, rid:5, platformToken:
{
    platform=7,
    token=s18069ps301291893q1ssro2o40s1630-n262n542r9669q62o83s390306179rro-775875632-654-6105326555582-PA-0052993947080949113-5
    region=NULL
    isUserSettings=false
}

            
このコードブロックはフローティングウィンドウ内に表示されます

コード難読化を設定

proguardを使用している場合は、設定ファイルに次の内容を追加し、誤った警告レポートによってコンパイルが失敗するのを防ぎます:

-ignorewarnings -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.hihonor.push.**{*;}
              
              
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hihonor.push.**{*;}
  

            
このコードブロックはフローティングウィンドウ内に表示されます

Honorチャネルのテスト方法

  1. 「EngageLabコンソール」->「AppPush」->「基本設定」->「統合設定」ページに移動し、パラメータ(App ID、Client ID、Client Secret、App Secret)を入力し、「保存」をクリックします。

alt text

  1. アプリプロセスを強制終了した後、プッシュを実行します。プッシュを受信した場合は、メーカーチャネルの統合が成功しています。

メーカーSDKを統合していないが、依然としてEngageLabを使用してメーカーメッセージをプッシュする場合のメーカー通知の報告方法

/** * メーカーチャネル通知到着を報告する * * http/httpsを介して報告する * * @param context 非null * @param messageId EngageLabメッセージID、非null * @param platform メーカー、値の範囲(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、8:google) * @param platformMessageId メーカーメッセージID、null可 */ public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * メーカーチャネル通知到着を報告する
     * 
     * http/httpsを介して報告する
     *
     * @param context           非null
     * @param messageId         EngageLabメッセージID、非null
     * @param platform          メーカー、値の範囲(1:mi2:huawei3:meizu4:oppo5:vivo8:google)
     * @param platformMessageId メーカーメッセージID、null可
     */
    public static void reportNotificationArrived(Context context, String messageId, byte platform, String platformMessageId)

            
このコードブロックはフローティングウィンドウ内に表示されます
/** * メーカーチャネル通知クリックを報告する * * http/httpsを介して報告する * * @param context 非null * @param messageId EngageLabメッセージID、非null * @param platform メーカー、値の範囲(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google) * @param platformMessageId メーカーメッセージID、null可 */ public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * メーカーチャネル通知クリックを報告する
     * 
     * http/httpsを介して報告する
     *
     * @param context           非null
     * @param messageId         EngageLabメッセージID、非null
     * @param platform          メーカー、値の範囲(1:mi2:huawei3:meizu4:oppo5:vivo7:honor8:google)
     * @param platformMessageId メーカーメッセージID、null可
     */
    public static void reportNotificationClicked(Context context, String messageId, byte platform, String platformMessageId)

            
このコードブロックはフローティングウィンドウ内に表示されます
/** * メーカーチャネル通知削除を報告する * * http/httpsを介して報告する * * @param context 非null * @param messageId EngageLabメッセージID、非null * @param platform メーカー、値の範囲(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google) * @param platformMessageId メーカーメッセージID、null可 */ public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * メーカーチャネル通知削除を報告する
     * 
     * http/httpsを介して報告する
     *
     * @param context           非null
     * @param messageId         EngageLabメッセージID、非null
     * @param platform          メーカー、値の範囲(1:mi2:huawei3:meizu4:oppo5:vivo7:honor8:google)
     * @param platformMessageId メーカーメッセージID、null可
     */
    public static void reportNotificationDeleted(Context context, String messageId, byte platform, String platformMessageId)

            
このコードブロックはフローティングウィンドウ内に表示されます
/** * メーカーチャネル通知オープンを報告する * * http/httpsを介して報告する * * @param context 非null * @param messageId EngageLabメッセージID、非null * @param platform メーカー、値の範囲(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google) * @param platformMessageId メーカーメッセージID、null可 */ public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)
              
                  /**
     * メーカーチャネル通知オープンを報告する
     * 
     * http/httpsを介して報告する
     *
     * @param context           非null
     * @param messageId         EngageLabメッセージID、非null
     * @param platform          メーカー、値の範囲(1:mi2:huawei3:meizu4:oppo5:vivo7:honor8:google)
     * @param platformMessageId メーカーメッセージID、null可
     */
    public static void reportNotificationOpened(Context context, String messageId, byte platform, String platformMessageId)

            
このコードブロックはフローティングウィンドウ内に表示されます
/** * メーカートークンをアップロードする * * EngageLabの長い接続が正常に確立された後に呼び出す必要があります。それ以外の場合は無効です。`MTCommonReceiver.onConnectStatus`コールバックがtrueを返すと、長い接続状態が正常に確立されます。 * * TCPを介してアップロードする * * @param context Not null * @param platform メーカー、値の範囲(1:mi、2:huawei、3:meizu、4:oppo、5:vivo、7:honor、8:google) * @param token メーカーが返すトークン、非null */ public static void uploadPlatformToken(Context context, byte platform, String token)
              
                  /**
     * メーカートークンをアップロードする
     *
     * EngageLabの長い接続が正常に確立された後に呼び出す必要があります。それ以外の場合は無効です。`MTCommonReceiver.onConnectStatus`コールバックがtrueを返すと、長い接続状態が正常に確立されます。
     * 
     * TCPを介してアップロードする
     *
     * @param context  Not null
     * @param platform メーカー、値の範囲(1:mi2:huawei3:meizu4:oppo5:vivo7:honor8:google)
     * @param token    メーカーが返すトークン、非null
     */
    public static void uploadPlatformToken(Context context, byte platform, String token)

            
このコードブロックはフローティングウィンドウ内に表示されます
icon
お問い合わせ