我正在尝试构建一个简单的应用程序,它将等待新的SMS到达,从中提取和处理数据.应用程序应该在后台运行.GUI具有单个开关元件以启动/停止广播接收器.即使应用程序被销毁并且屏幕被锁定,应用程序仍应正常工作,除非用户手动将其关闭.我在stackoverflow上搜索了每个资源,并且大多数都是这样做的,然而,它仍然不适合我,我似乎不知道为什么.我知道因为Log.d(...)没有归还任何东西.任何帮助,将不胜感激.
public class SMSReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("RECEIVER", "ENTERED");
if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
Log.d("RECEIVER", "SMS RECEIVED");
SmsMessage[] messages = Telephony.Sms.Intents.getMessagesFromIntent(intent);
for(int i = 0; i < 4; i++){
SmsMessage sms = messages[i];
Log.d("Message " + i + 1 + " from: ", sms.getOriginatingAddress());
Toast.makeText(context,"SMS from " + sms.getOriginatingAddress(), Toast.LENGTH_SHORT).show();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
public class MainActivity extends AppCompatActivity {
IntentFilter filter;
SMSReceiver receiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); …Run Code Online (Sandbox Code Playgroud)