私には問題があり、それが何を引き起こしているのではないかと思います。私の活動では、データはボタンをクリックするとサーバーに送信されます。ブロードキャスト受信機が電話で機能していない
サーバーはこの要求を処理し、USSDのプロンプトのように、電話番号で電話機のネットワークPROMPTを開始します。
ここで、プロンプトが表示された分が表示されます。ユーザーはオプションを選択し、ピンコードを入力して要求を完了する必要があります。サーバー上でこの要求が確認されると、私はFCMを使用してアプリに投稿します。メッセージングサービスがこのリクエストを受け取ると、現在のアクティビティにブロードキャストを送信します。
ブロードキャストは自分のアクティビティで受信されます。このアクティビティは、ユーザーに最終的なアクティビティを行うよう通知します。
これは私のエミュレータでは完全に動作しますが、私の電話機では動作しません。私は自分のログをチェックして、受信者が電話で呼ばれていないことに気づき、理由を知らない。プロンプトが表示されたときに、アプリがフォーカスを失うなどの何かがあったような気がします。私はあまりよく分からない。
編集:
MyFireBaseMessagingService.java:
public void onMessageReceived(RemoteMessage remoteMessage) {
// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
}
Map<String, String> data = remoteMessage.getData();
if (data.containsKey("method") && data.containsKey("action")) {
String action = data.get("action");
switch (action) {
case "/checkout":
Log.d("onMessageReceived", data.toString());
Intent i = new Intent();
i.setAction("com.xxxxxx.xxxxxx.CHECKOUT");
i.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
i.putExtra("data", new JSONObject(data).toString());
sendBroadcast(i);
break;
default:
Log.d("Default", action);
break;
}
}
// Check if message contains a notification payload.
if (remoteMessage.getNotification() != null) {
Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
}
// Also if you intend on generating your own notifications as a result of a received FCM
// message, here is where that should be initiated. See sendNotification method below.
}
MyBroadcastReceiver.java:
private class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
showProgress(false);
Intent checkoutIntent = new Intent(PaymentActivity.this, CheckoutActivity.class);
startActivity(checkoutIntent);
}
}
MyActivity.java:
@Override
public void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter("com.xxxxxx.xxxxxx.CHECKOUT");
filter.setPriority(999);
mBroadcastReceiver = new MyBroadcastReceiver();
mContext.registerReceiver(mBroadcastReceiver, filter);
}
@Override
public void onPause() {
super.onPause();
mContext.unregisterReceiver(mBroadcastReceiver);
}
あなたは、放送受信機の部分まで、あなたの携帯電話ですべて正常に動作していると言っていますか?受信機をどのように実装したかを示すことができますか?いくつかのコードはいつも見てよかった –
はい、それは私が言っていることです、私は私のコンソールにエラーが表示されない、自分の投稿を編集し、コードを追加します。 – user3718908
私の投稿を編集したので、コードを今すぐチェックすることができます。ありがとう。 – user3718908