オフライン通知機能は、アプリケーションが「バックエンドで実行中」または「オフライン状態」の場合でも、オーディオビデオ通話の着信を受信できる機能です。TUICallKitはTUIOfflinePushコンポーネントを統合することでオフライン通知機能を実現しています。ここでは、オーディオビデオ通話プロジェクトでTUIOfflinePush
コンポーネントを統合する方法についてご説明します。
注意:次の2つのファイルはこの後の手順で使用します
- Huaweiプラットフォームに登録する場合は、
agconnect-services.json
ファイルをダウンロードして保存します。- Googleプラットフォームに登録する場合は、
google-services.json
ファイルをダウンロードして保存します。
Google FCM
メーカーのチャネルに登録するにはご自身のパッケージ名を渡す必要があります。メッセージの相互運用のため、各メーカーで入力するパッケージ名は一致させる必要があります。生成したID、APPIDおよびAPPKEYを記録します。これらはこの後の手順で使用します。
setting.gradle
ファイルを見つけ、その中に次のコードを追加します。include ':tuiofflinepush'
build.gradle
ファイルを見つけ、その中に次のコードを追加します。その役割は、現在のappの新たに追加したtuiofflinepushコンポーネントへの依存を宣言するものです。api project(':tuiofflinepush')
build.gradle
ファイルを見つけ、アプリケーションパッケージ名をご自身のパッケージ名に変更します。applicationId 'com.****.trtc'
build.gradle
ファイルを見つけ、ViVo
アクセスパラメータのVIVO_APPKEY
、VIVO_APPID
およびHONOR_APPID
を設定し、コンパイルまたは実行エラーを避けます。manifestPlaceholders = [
"VIVO_APPKEY": "PLACEHOLDER",
"VIVO_APPID" : "PLACEHOLDER",
"HONOR_APPID": "PLACEHOLDER"
]
HuaweiおよびGoogleファイルの設定: appディレクトリ下でgoogle-services.json
ファイルを置き換えます。このファイルは事前準備でGoogleプラットフォームに登録した際に保存したファイルです。 appディレクトリ下にagconnect-services.json
ファイルを追加します。このファイルは事前準備でHuaweiプラットフォームに登録した際に保存したファイルです。
事前準備で記録したID、APPID、APPKEYをPrivateConstants
ファイルに入力し、パラメータの設定が正しいかどうかを確認します。入力するパラメータは次のとおりです。
public class PrivateConstants {
/****** Xiaomiオフラインプッシュパラメータstart ******/
// Tencent Cloudコンソールで、サードパーティの証明書プッシュ後に割り当てられた証明書IDをアップロードします
public static final long XM_PUSH_BUZID = アプリケーションが割り当てた証明書ID;
// Xiaomiオープンプラットフォームが割り当てたアプリケーションAPPIDおよびAPPKEY
public static final String XM_PUSH_APPID = "アプリケーションが割り当てたAPPID";
public static final String XM_PUSH_APPKEY = "アプリケーションが割り当てたAPPKEY";
/****** Xiaomiオフラインプッシュパラメータend ******/
}
注意:この手順は非常に重要です。パラメータが正しく設定されているかどうかをよく確認してください。
上記の手順が完了すると、プロジェクトにTUICallKit
のオフライン通知機能が実装されます。
TUICallKitはデフォルトの通知スタイルを提供していますが、通知内容をカスタマイズしたい場合は、OfflinePushInfoConfig.javaファイルを変更してください。
public static TUIOfflinePushInfo createOfflinePushInfo(Context context) {
TUIOfflinePushInfo pushInfo = new TUIOfflinePushInfo();
pushInfo.setTitle("mike");
pushInfo.setDesc("You have receive a new call");
// OPPOはChannelIDを設定するとプッシュメッセージを受信することができます。このchannelIDはコンソールと一致している必要があります
// OPPO must set a ChannelID to receive push messages. This channelID needs to be the same as the console.
pushInfo.setAndroidOPPOChannelID("tuikit");
pushInfo.setIgnoreIOSBadge(false);
pushInfo.setIOSSound("phone_ringing.mp3");
return pushInfo;
}
オフラインプッシュ通知が受信できない場合は、お調べしますのでお問い合わせください。
メーカーのコンソールを使用してプッシュテストを行い、成功した場合はメーカーのチャネルに問題がないことがわかります。さらにTUIOfflinePushコンソールのメーカーパラメータ設定が正しいかどうかを確認し、要件に従って入力します。(テストの結果、vivo x9はコンソールでメッセージのカテゴリーを設定する必要があります)。
一部のスマートフォンでは通知が「重要でない通知」に入ることがあります。ステータスバーをプルダウンし、「重要でない通知」に分類されていないかを確認してください。
TUIOfflinePushの登録が正常に行われているかどうかを確認します。次のログをフィルタリングします。
TUIOfflinePush
Androidスマートフォンはメーカーとプラットフォームの制限により、画面ロック状態での必要な権限が異なります。状況に応じて以下のトラブルシューティングを行ってください。
メーカーのロック画面通知権限がオンになっているかを確認する 一部のメーカーではルールの統一化を行っています。例えばXiaomiではロック画面中のオフライン通知到着時にディスプレイが点灯しない場合、設定 > ロック画面で、ロック画面中の通知受信時にディスプレイを点灯スイッチをクリックしてオンにします。
アプリケーションのロック画面通知権限がオンになっているかを確認する 例:Xiaomiではロック画面表示権限が必要です。
説明:この問題が起こった場合は互換性の処理が必要です。TencentのQQグループ(592465424)に参加すると、問い合わせとフィードバックを行うことができます。
通話リクエストが見つかるかどうかを確認する必要があります。次のログをフィルタリングできます。
onReceiveNewInvitation
アプリケーションをバックエンドからフロントエンドに自動的にプルする場合、Appが「バックエンド自動起動」または「フローティングウィンドウ」権限を有効にしているかどうかを確認する必要があります。
メーカーが異なる場合や、同じメーカーであってもAndroidのバージョンが異なる場合は、アプリケーションに許可する権限や権限名が一致しないことがありますのでご注意ください。例えば、Xiaomi 6ではバックエンドの画面ポップアップ権限を有効にすればよいだけですが、Redmiではバックエンドの画面ポップアップとフローティングウィンドウの表示の権限を同時に有効にする必要があります。
説明:手動ですべての権限を有効化しても、通話画面のフロントエンドへの自動プルができないことをテスト中に発見した場合は、互換性の処理が必要です。
この記事はお役に立ちましたか?