すべてのプロダクト
Search
ドキュメントセンター

Mobile Platform as a Service:HUAWEI Push の統合

最終更新日:Jan 17, 2025

このガイドでは、主に HUAWEI Push の統合プロセスについて説明します。このプロセスは、次の 3 つのステップに分かれています。

  1. HUAWEI Push の登録

  2. HUAWEI Push の統合

  3. HUAWEI Push のテスト

HUAWEI Push の登録

Huawei Developer 公式 Web サイトにアクセスし、アカウントを登録して、プッシュサービスを有効化します。詳細については、「HUAWEI Push を有効にする」をご参照ください。

HUAWEI Push の統合

MPS は、Huawei HMS2 および HMS5 へのアクセスをサポートしています。ただし、Huawei プッシュコンポーネントの統合プロセスでは、HMS2 または HMS5 のいずれかを選択することしかできません。

  • HMS2 は廃止されています。初めて HUAWEI Push を統合する場合は、HMS5 を統合することをお勧めします。

  • HMS2 から HMS5 にアップグレードした場合は、最初に以下にリストされている HMS2 AndroidManifest 構成を削除する必要があります。

以下では、Huawei HMS2 と HMS5 の統合方法についてそれぞれ説明します。

HUAWEI Push - HMS5.x バージョン

  1. IDE プラグインで Push - HMS5 コンポーネントを追加します。手順は MPS SDK を追加する場合とほぼ同じです。詳細については、「SDK を追加する」をご参照ください。

    説明

    Push - HMS5 コンポーネントには、HMS SDK を含まず、アダプティブコードのみが含まれています。以下の手順に従って、HMS SDK の依存関係を個別に追加できます。

  2. Huawei App [サービス] コンソールで構成ファイル agconnect-services.json をダウンロードし、メイン プロジェクトの assets ディレクトリに配置します。

  3. プロジェクトのルートディレクトリにある build.gradle ファイルで、HMS SDK の Maven ウェアハウスアドレスを構成します。

     allprojects {
         repositories {
             // その他のリポジトリは無視されます
             maven {url 'https://developer.huawei.com/repo/'}
         }
     }
  4. メイン プロジェクトの build.gradle ファイルに HMS SDK の依存関係を追加します。

     dependencies {
         implementation 'com.huawei.hms:push:5.0.2.300'
     }
    • HMS SDK のバージョンは頻繁に更新されます。最新バージョンについては、「HMS SDK バージョン変更履歴」をご参照ください。

    • 現在適用可能なバージョンは 5.0.2.300 です。より高いバージョンを使用する必要がある場合は、自分で変更できます。一般的に、ベンダーの SDK は下位互換性があります。互換性がない場合は、新バージョンのニーズに適応するためのフィードバックを提供できます。

  5. 難読化を使用するには、関連する難読化構成を追加する必要があります。

HUAWEI Push - HMS2.x バージョン

  1. IDE プラグインで プッシュ - HMS2SDK を追加する コンポーネントを追加します。手順は、MPS SDK の追加とほぼ同じです。詳細については、「」をご参照ください。

    現在の HMS2 SDK バージョンは V2.5.2.201 です。

  2. AndroidManifest.xml を構成し、com.huawei.hms.client.appid の値を置き換えます。Portal & Bundle プロジェクトを介して MiPush SDK を統合する場合は、Portal プロジェクトで AndroidManifest.xml を構成してください。

     <activity
          android:name="com.huawei.hms.activity.BridgeActivity"
          android:configChanges="orientation|locale|screenSize|layoutDirection|fontScale"
          android:excludeFromRecents="true"
          android:exported="false"
          android:hardwareAccelerated="true"
          android:theme="@android:style/Theme.Translucent">
           <meta-data
              android:name="hwc-theme"
              android:value="androidhwext:style/Theme.Emui.Translucent" />
     </activity>
      <!--以前のバージョンでの dex クラッシュを防ぐため、プロバイダーを動的に有効にし、「enabled」を false に設定します。-->
      <provider
           android:name="com.huawei.hms.update.provider.UpdateProvider"
           android:authorities="${applicationId}.hms.update.provider"
           android:exported="false"
           android:enabled="false"
           android:grantUriPermissions="true">
         </provider>
             <!-- 値の「appid」を、Huawei Developer のアプリのサービス詳細にある実際のアプリ ID に置き換えます。値のバックスラッシュ (\) とスペースは保持します。 -->
       <meta-data
                 android:name="com.huawei.hms.client.appid"
                 android:value="\ your huawei appId" />
         <receiver
                 android:name="com.huawei.hms.support.api.push.PushEventReceiver"
                 android:exported="true"
                 >
                 <intent-filter>
                     <!-- チャネルから送信された通知バーメッセージを受信します。以前のバージョンの PUSH と互換性があります。-->
                     <action android:name="com.huawei.intent.action.PUSH" />
                 </intent-filter>
      </receiver>
    
       <receiver
                 android:name="com.alipay.pushsdk.thirdparty.huawei.HuaweiPushReceiver"
                 android:exported="true"
                 android:process=":push">
                 <intent-filter>
                     <!-- 必須。TOKEN の受信に使用されます。 -->
                     <action android:name="com.huawei.android.push.intent.REGISTRATION" />
                     <!-- 必須。メッセージの受信に使用されます -->
                     <action android:name="com.huawei.android.push.intent.RECEIVE" />
                     <!-- オプション。通知バーまたは通知バーのボタンをクリックしたときに onEvent コールバックをトリガーするために使用されます -->
                     <action android:name="com.huawei.android.push.intent.CLICK" />
                     <!-- オプション。PUSH チャネルが接続されているかどうかを確認するために使用されます。アクセスチェックが不要な場合は、このパラメータを構成する必要はありません -->
                     <action android:name="com.huawei.intent.action.PUSH_STATE" />
                 </intent-filter>
        </receiver>
  3. 難読化を使用するには、関連する難読化構成を追加する必要があります。

    • Native AAR を介して HUAWEI push SDK を統合した場合は、「mPaaS 難読化ルール」を追加する必要があります。

    • 他の方法で HUAWEI push SDK を統合した場合は、難読化構成を追加する必要はありません。

HUAWEI Push のテスト

  1. HUAWEI Push を統合した後、Huawei スマートフォンでアプリを起動すると、MPS SDK が自動的に HUAWEI Push トークンを取得して報告します。アプリを起動する前に、初期化メソッドが呼び出されていることを確認してください。詳細については、「メッセージプッシュの初期化」をご参照ください。

  2. アプリプロセスが強制終了されたときにテストメッセージをプッシュします。

    • 引き続きメッセージを受信できる場合は、アプリが HUAWEI Push を正常に統合していることを意味します。

    • メッセージを受信できない場合は、以下の手順に従ってトラブルシューティングを行ってください。

トラブルシューティング

  1. Huawei の構成とパラメータが Huawei プッシュバックエンドの構成とパラメータと一致していることを確認します。

    • HMS2 の場合は、AndroidManifest.xml に関連する構成が追加されているかどうか、および com.huawei.hms.client.appid が Huawei プッシュバックエンドの com.huawei.hms.client.appid と同じであるかどうかを確認します。

    • HMS5 の場合は、agconnect-services.json が存在し、ファイルが正しく配置されていることを確認します。

  2. mPaaS コンソールで HUAWEI Push が有効になっていること (「HUAWEI Push の構成」を参照) 、および関連する構成が Huawei プッシュバックエンドの構成と一致していることを確認します。

  3. Logcat のログを表示してトラブルシューティングを行います。

    1. push プロセスを選択し、mPush.PushProxyFactory をフィルタリングして、次のログが存在するかどうかを確認します。

      D/mPush.PushProxyFactory: found proxy com.mpaas.push.external.hms.Creator (HMS2)
      D/mPush.PushProxyFactory: found proxy com.mpaas.push.external.hms5.Creator (HMS5)

      存在しない場合は、Push - HMS2 または Push - HMS5 コンポーネントに問題がある可能性があります。コンポーネントが正しく追加されているかどうかを確認します。

    2. メインプロセスを選択し、mHMS をフィルタリングして、HUAWEI Push のチャネルトークンが取得されているかどうかを確認します。次のログ get token failed が表示された場合:

      システムがチャネルトークンを取得できなかったことを意味します。失敗の理由については、「HUAWEI Push 結果コード」をご参照ください。

    3. メインプロセスを選択し、report channel token をフィルタリングして、HUAWEI Push のチャネルトークンが正常に報告されているかどうかを確認します。次のログが表示された場合:

      report channel token error: xxxx

      チャネルトークンの報告に失敗したことを意味します。mPaaS 構成ファイルの base64Code に値があるかどうか、および構成ファイルの取得時にアップロードした apk 署名がアプリと一致しているかどうかを確認する必要があります。

その他の質問

MPS には EMUI と Huawei モバイルサービスにバージョン制限がありますか?

Emotion UI (略称 EMUI。Huawei によって開発された Android ベースの感情的なオペレーティングシステムです) と Huawei モバイルサービスにはバージョン制限があります。

詳細なバージョン要件については、「デバイスが Huawei 通知を受信するための条件」をご参照ください。

Huawei スマートフォンでログを出力できませんでした

Huawei モバイルフォンのダイヤルインターフェイスで、##2846579## を入力して [プロジェクト] メニュー > [バックグラウンド設定] > [ログ設定] に入り、[AP ログ] を選択します。電話が再起動すると、Logcat が有効になります。