我正在尝试创建一个短信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);
}
所以..任何人......任何提示?!
THX
答案 0 :(得分:0)
嗨:)嗯,我可能错了,但不是pendingIntent.send();
发送消息?同时,在debuging模式下,试着看看LogCat在说什么:)也许你会在那里找到答案;)
答案 1 :(得分:0)
答案 2 :(得分:0)
我不会立即看到错误。你可以用你的Android手机连接你的电脑,在你的代码中的某处放一个换行符并以这种方式调试吗?这样,您可以检查它如何进入SMSManagerService.class sendSMS
两次。
答案 3 :(得分:0)
只是澄清问题并给出答案......
这是一个关于Android的错误,取决于运行短信应用程序的手机和Android版本。
该错误与此相关: Google code Android inssues
一种可能,对我有用,与此相关: Android sendTextMessage sends two identical messages on exceution, how to fix?