我希望我的应用在收到短信时发送短信,然后我就开始工作了。问题是,一旦收到1条短信,它就不会停止发送。
就像onReceive()方法一样被调用。
我希望每收到一条短信发送1条短信。
/ ********************************************** ********* /
BroadcastReceiver类
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsManager;
public class SMSListener extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage("031130130", null, "sms text", null, null);
}
}
/ ********************************************** ********* /
/ ********************************************** ******** /
MainActivity
broadcastReceiver = new SMSListener() {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED") && intent.getExtras() != null){
try{
doStuffsIfStolenOnce();
}catch (Exception e){
Toast.makeText(Running.this,"Something went wrong:" + e.getMessage(),Toast.LENGTH_LONG).show();
}
}
}
};
IntentFilter myFilter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(broadcastReceiver, myFilter);
/ ********************************************** ********* /
在清单
中添加了意图过滤器和权限<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<receiver android:name=".SMSListener">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
感觉问题显而易见,但我无法找到其他人遇到此问题。
答案 0 :(得分:0)
解决了我的问题!事实证明这是我的愚蠢错误,我正在测试手机上的应用程序(真实设备),我没有第二部手机发送“请求”短信。所以我使用自己的手机发送初始短信和应用程序,工作正常,发回一个,但这意味着它发送短信给自己,一旦收到第二个短信,它继续发送另一个...它得到了本身就是一个很好的循环。