更新:如果我将sendSms()
函数带到内部类之外,它将起作用!
但是我需要里面有人可以帮忙吗?
我正在尝试使用SmsManager
在背景中发送短信,但没有任何反应。当我去Logcat时说:
E/art: Failed sending reply to debugger: Broken pipe
我已经在模拟器和真实设备上对其进行了测试
这是MainActivity.java
的一部分:
SmsReceiver.bindListener(new SmsListener() {
@Override
public void messageReceived(String messageText, String sender) {
if (msgClassifier.isUrgent(messageText, null, null)) {
sendNotification(messageText);
}
else {
if(sharedPrefs.getAutoReplyState(getApplication())){
Toast.makeText(MainActivity.this, "send sms", Toast.LENGTH_SHORT).show();
sendSms(sender,messageText);
}
}
}
});
public void sendSms(String number, String msg){
android.telephony.SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(number,null,msg,null,null);
}
正在显示Toast,并且我还打印了sender
和messageText
,并且打印了应该打印的内容,所以这不是问题。
我一直在寻找此错误,并尝试清理项目,重建,退出android并没有任何效果。
我已在清单中包含SEND_SMS权限
答案 0 :(得分:0)
尝试一下:
public void sendSMS(String phoneNo, String msg) {
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, msg, null, null);
Toast.makeText(getApplicationContext(), "Message Sent",
Toast.LENGTH_LONG).show();
} catch (Exception ex) {
Toast.makeText(getApplicationContext(),ex.getMessage().toString(),
Toast.LENGTH_LONG).show();
ex.printStackTrace();
}
}