【问题标题】:Receive SMS not working (java android)接收短信不起作用(java android)
【发布时间】:2016-03-18 20:17:49
【问题描述】:

我不明白,当我收到一条短信时,什么也没有出现。

public class MyReceiver extends BroadcastReceiver {
    public MyReceiver() {
    }

    private static final String RECEIVE_MSG = "android.provider.Telephony.SMS_RECEIVED";

    @Override
    public void onReceive(Context context, Intent intent) {

        if(intent.getAction().equals(RECEIVE_MSG)){
            Bundle extra = intent.getExtras();
            if(extra!= null){
                Object[] pdus = (Object[])extra.get("pdus");
                final SmsMessage[] messages = new SmsMessage[pdus.length];
                for(int i = 0; i<pdus.length; i++){
                    messages[i]= SmsMessage.createFromPdu((byte[])pdus[i]);
                }
                if (messages.length>-1) {
                    for (int i = 0; i<messages.length; i++) {
                        final String messageBody = messages[i].getMessageBody();
                        final String phoneNumber = messages[i].getDisplayOriginatingAddress();
                        Toast.makeText(context,"Expéditeur:" + phoneNumber, Toast.LENGTH_LONG).show();
                        Toast.makeText(context,"Message : " + messageBody, Toast.LENGTH_LONG).show();
                    }
                }
            }
        }

    }
}

【问题讨论】:

  • 这些信息不足以诊断您的问题。
  • 你有接收短信的权限吗?如果您使用的是 KitKat 或更高版本,请阅读 android-developers.blogspot.com/2013/10/…
  • 是的,我是 android 6,我添加了权限,但确实我无法为收到的短信添加运行时权限,但我应该在哪里做呢?谢谢
  • “我无法为收到的短信添加运行时权限” - 为什么不呢?无论如何,用户必须启动Activity 才能使您的应用退出已停止 状态;那就去做吧。
  • 我是初学者,能不能说的具体点谢谢

标签: java android sms broadcast


【解决方案1】:

您是否在清单或活动中注册了接收器?

<receiver android:name=".broadcast.SmsBroadcastReceiver" >
        <intent-filter android:priority="5000">
            <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
        </intent-filter>

</receiver>

 IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
 filter.setPriority(9999);
 registerReceiver(new SmsBroadcastReceiver(),filter);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 2011-12-28
    相关资源
    最近更新 更多