【发布时间】:2019-11-12 20:36:00
【问题描述】:
我按照教程在我的应用程序上接收 SMS 并阅读它以将 SMSbody 传递给 Toast。 那是 Receiver 类。
public class SmsReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent){
Bundle bundle= intent.getExtras();
SmsMessage[] msgs= null;
String str="";
if(bundle != null ){
Object [] pdus=(Object[]) bundle.get("pdus");
msgs=new SmsMessage[pdus.length];
for(int i=0; i< msgs.length;i++){
msgs[i]= SmsMessage.createFromPdu((byte[])pdus[i]);
str+= msgs[i].getMessageBody();
}
Toast.makeText(context, str, Toast.LENGTH_LONG).show();
}
}
}
清单文件
<receiver android:name="com.msoft.masrooq.SmsReciever">
<intent-filter>
<action android:name="android.provider.telephony.SMS_RECIEVED"></action>
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS" />
应用程序启动正常,但没有响应接收短信 它什么也没做。
【问题讨论】:
-
我有类似的问题。我没有收到任何消息,尽管我认为我已经实现了它工作所需的一切。我不知道这是否可以解决某些问题,但我在清单中的主要活动标签上方声明了接收器,从那时起它就起作用了。希望这能解决某人的问题