このガイドでは、主に HUAWEI Push の統合プロセスについて説明します。このプロセスは、次の 3 つのステップに分かれています。
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 バージョン
IDE プラグインで Push - HMS5 コンポーネントを追加します。手順は MPS SDK を追加する場合とほぼ同じです。詳細については、「SDK を追加する」をご参照ください。
説明Push - HMS5 コンポーネントには、HMS SDK を含まず、アダプティブコードのみが含まれています。以下の手順に従って、HMS SDK の依存関係を個別に追加できます。
Huawei App [サービス] コンソールで構成ファイル
agconnect-services.jsonをダウンロードし、メイン プロジェクトのassetsディレクトリに配置します。プロジェクトのルートディレクトリにある
build.gradleファイルで、HMS SDK の Maven ウェアハウスアドレスを構成します。allprojects { repositories { // その他のリポジトリは無視されます maven {url 'https://developer.huawei.com/repo/'} } }メイン プロジェクトの
build.gradleファイルに HMS SDK の依存関係を追加します。dependencies { implementation 'com.huawei.hms:push:5.0.2.300' }HMS SDK のバージョンは頻繁に更新されます。最新バージョンについては、「HMS SDK バージョン変更履歴」をご参照ください。
現在適用可能なバージョンは 5.0.2.300 です。より高いバージョンを使用する必要がある場合は、自分で変更できます。一般的に、ベンダーの SDK は下位互換性があります。互換性がない場合は、新バージョンのニーズに適応するためのフィードバックを提供できます。
難読化を使用するには、関連する難読化構成を追加する必要があります。
HUAWEI push SDK の統合に使用される統合方法に関係なく、「Huawei プッシュ難読化ルール」を追加する必要があります。
Native AAR を介して HUAWEI push SDK を統合した場合は、「mPaaS 難読化ルール」を追加する必要があります。
HUAWEI Push - HMS2.x バージョン
IDE プラグインで プッシュ - HMS2SDK を追加する コンポーネントを追加します。手順は、MPS SDK の追加とほぼ同じです。詳細については、「」をご参照ください。
現在の HMS2 SDK バージョンは V2.5.2.201 です。
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>難読化を使用するには、関連する難読化構成を追加する必要があります。
Native AAR を介して HUAWEI push SDK を統合した場合は、「mPaaS 難読化ルール」を追加する必要があります。
他の方法で HUAWEI push SDK を統合した場合は、難読化構成を追加する必要はありません。
HUAWEI Push のテスト
HUAWEI Push を統合した後、Huawei スマートフォンでアプリを起動すると、MPS SDK が自動的に HUAWEI Push トークンを取得して報告します。アプリを起動する前に、初期化メソッドが呼び出されていることを確認してください。詳細については、「メッセージプッシュの初期化」をご参照ください。
アプリプロセスが強制終了されたときにテストメッセージをプッシュします。
引き続きメッセージを受信できる場合は、アプリが HUAWEI Push を正常に統合していることを意味します。
メッセージを受信できない場合は、以下の手順に従ってトラブルシューティングを行ってください。
トラブルシューティング
Huawei の構成とパラメータが Huawei プッシュバックエンドの構成とパラメータと一致していることを確認します。
HMS2 の場合は、AndroidManifest.xml に関連する構成が追加されているかどうか、および
com.huawei.hms.client.appidが Huawei プッシュバックエンドのcom.huawei.hms.client.appidと同じであるかどうかを確認します。HMS5 の場合は、
agconnect-services.jsonが存在し、ファイルが正しく配置されていることを確認します。
mPaaS コンソールで HUAWEI Push が有効になっていること (「HUAWEI Push の構成」を参照) 、および関連する構成が Huawei プッシュバックエンドの構成と一致していることを確認します。
Logcat のログを表示してトラブルシューティングを行います。
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 コンポーネントに問題がある可能性があります。コンポーネントが正しく追加されているかどうかを確認します。
メインプロセスを選択し、
mHMSをフィルタリングして、HUAWEI Push のチャネルトークンが取得されているかどうかを確認します。次のログget token failedが表示された場合:システムがチャネルトークンを取得できなかったことを意味します。失敗の理由については、「HUAWEI Push 結果コード」をご参照ください。
メインプロセスを選択し、
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 が有効になります。