【发布时间】: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