我有一個問題,我想我可能不會造成它。在我的活動中,數據按鈕點擊發布到服務器。廣播接收器不能在電話上工作
然後,服務器處理此請求,並使用您的號碼在您的手機上啓動網絡提示,例如USSD中的提示。
現在就是提示出現的那一刻,用戶需要選擇一個選項並輸入他們的PIN碼完成請求。在服務器驗證完這個請求之後,我使用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