我正在尝试制作一个 sms android 应用程序,但我遇到了一个我以前从未见过的错误,即使在谷歌中我也没有找到类似的东西。所以,如果你能帮助我...我会很高兴
由于某种原因,该程序同时发送两条消息(相同的短信)。但它只发生在生产中。当我使用模拟器时,一切正常!它只发送一次短信...
我试过很多手机和很多电话运营商,但错误总是发生。我真的不知道如何发现正在发生的事情,因为它只发生在真实手机中而不是模拟器中......
代码如下:
private void sendSMS(String phoneNumber, String message, Context context) {
ContextWrapper cw = new ContextWrapper(context);
Context baseContext = cw.getBaseContext();
Intent intentSMS = new Intent(baseContext, SMSManagerService.class);
intentSMS.putExtra("celNumber", phoneNumber);
intentSMS.putExtra("textMessage", message);
Random s = new Random(System.currentTimeMillis());
PendingIntent pendingIntent = PendingIntent.getService(cw, s.nextInt(), intentSMS, PendingIntent.FLAG_ONE_SHOT);
try {
pendingIntent.send();
} catch (CanceledException e) {
}
}
SMSManagerService.class
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Bundle intentExtras = intent.getExtras();
if (intentExtras != null) {
String phoneNumber = intentExtras.getString("celNumber");
String message = intentExtras.getString("textMessage");
if (isContentValid(phoneNumber, message)) {
sendSMS(phoneNumber, message);
}
}
return super.onStartCommand(intent, flags, startId);
}
private void sendSMS(String phoneNumber, String message) {
sentPI = registerSMSSent(phoneNumber, message);
deliveredPI = registerSMSdelivered();
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
}
所以..任何人...任何提示?!
谢谢