将 SMS 从 BroadcastReceiver 传递到 Activity
Pass SMS from BroadcastReceiver to Activity
我正在创建一个短信应用程序。我可以很好地发送消息,但是我无法接收它。我已经成功实现了允许该应用程序被选为设备上的默认 SMS 应用程序的功能。
我遇到的问题是无法将 SMS 从 BroadcastReceiver
传递到显示消息的 Activity。我知道可以对消息使用 intent.putExtra()
,然后使用 startActivity()
,但是如果在收到消息时 activity 已经启动,会发生什么情况?我不想在每次收到新消息时都重新启动 activity。
给那只猫剥皮的方法很少,一种方法是在Activity里面放一个接收器,像这样
void onResume(){
super.onResume();
IntentFilter filter = new IntentFilter();
filter.addAction("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(mSmsReceiver, filter);
}
void onPause(){
super.onPause();
unregisterReceiver(mSmsReceiver);
}
private BroadcastReceiver mSmsReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//Do you stufff
}
};
我正在创建一个短信应用程序。我可以很好地发送消息,但是我无法接收它。我已经成功实现了允许该应用程序被选为设备上的默认 SMS 应用程序的功能。
我遇到的问题是无法将 SMS 从 BroadcastReceiver
传递到显示消息的 Activity。我知道可以对消息使用 intent.putExtra()
,然后使用 startActivity()
,但是如果在收到消息时 activity 已经启动,会发生什么情况?我不想在每次收到新消息时都重新启动 activity。
给那只猫剥皮的方法很少,一种方法是在Activity里面放一个接收器,像这样
void onResume(){
super.onResume();
IntentFilter filter = new IntentFilter();
filter.addAction("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(mSmsReceiver, filter);
}
void onPause(){
super.onPause();
unregisterReceiver(mSmsReceiver);
}
private BroadcastReceiver mSmsReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//Do you stufff
}
};