小编Ahm*_* Tn的帖子

广播接收器未被呼叫

我正在尝试构建一个简单的应用程序,它将等待新的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)

sms android broadcastreceiver

2
推荐指数
2
解决办法
3712
查看次数

标签 统计

android ×1

broadcastreceiver ×1

sms ×1