我有一个问题,我想我可能不会造成它。在我的活动中,数据按钮点击发布到服务器。广播接收器不能在电话上工作
然后,服务器处理此请求,并使用您的号码在您的手机上启动网络提示,例如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