Android SMSManager返回结果\u错误\u一般\u失败,尽管尝试了所有操作
我正在尝试在我的应用程序中创建一个功能,可以在后台向多个联系人发送短信。我正在使用Android SMSManager返回结果\u错误\u一般\u失败,尽管尝试了所有操作,android,sms,smsmanager,Android,Sms,Smsmanager,我正在尝试在我的应用程序中创建一个功能,可以在后台向多个联系人发送短信。我正在使用SMS管理器API做同样的事情。但是,每次RESULT\u ERROR\u GENERIC\u FAILURE都会返回。我读了很多关于堆栈溢出的类似文章,并尝试了所有的解决方案,但似乎没有一个适合我。具体而言,我尝试了以下几点: 将电话号码格式更改为“+91XXXXXXXXX”、“9xxxxxxxxx”、“91XXXXXXXXX” 检查SIM卡余额 短信服务中心号码也有效 短信长度在160个字符以内 延迟发送多条短
SMS管理器API
做同样的事情。但是,每次RESULT\u ERROR\u GENERIC\u FAILURE
都会返回。我读了很多关于堆栈溢出的类似文章,并尝试了所有的解决方案,但似乎没有一个适合我。具体而言,我尝试了以下几点:
for (int index = 0; index < contactsList.size(); index++) {
final String phonenumber = contactsList.get(index).getPhone().substring(1);
if (index == 0) {
sendSMS(phonenumber.trim(), sms, contactsList);
} else {
new Handler().postDelayed(new Runnable() {
public void run() {
sendSMS(phonenumber.trim(), sms, contactsList);
}
}, 1000 * 20);
}
}
以下是我的相关清单权限:
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS" />
注意:我正在运行Android 6的真实设备上测试我的应用程序。我已检查运行时权限,并且已启用这些权限。
谁能告诉我我做错了什么吗?你的代码是正确的。检查您是否有活动SIM卡以及卡中是否有余额。因为一般故障是来自服务提供商的响应。我找到了解决此问题的方法。对于双sim卡手机,有一个选项指定从哪个sim卡发送SMS。如果选项设置为“每次询问”,则会发生一般性故障。解决方案是将此选项设置为任一SIM卡。然而,我还没有找到程序化的方法来做到这一点。这可能是由于一条很大的消息。Android支持长消息的多部分sms,请尝试使用多部分sms
SmsManager smsManager = SmsManager.getDefault();
ArrayList<String> parts = smsManager.divideMessage(message);
smsManager.sendMultipartTextMessage(phoneNo, null, parts, null, null);
SmsManager-SmsManager=smsmsmanager.getDefault();
ArrayList parts=smsmsmanager.divideMessage(消息);
sendMultipartTextMessage(phoneNo,null,parts,null,null);
对我来说,问题在于消息的内容,有特殊字符(如/r/n)(颤振解决方案)
这解决了发送长短信的问题
在您的pubspec.yaml中:
sms_maintained:
git:
url: https://github.com/andreimc/flutter_sms.git
我在这里找到它:我在上面相同的代码中遇到了同样的问题
我尝试重新启动手机一次,然后再试一次。手机正常。我的sim卡处于活动状态,并且具有余额。我试着通过本机短信应用发送短信。我的手机是双卡的。会不会有问题?也许。。。如果SIM1未激活,则会出现此错误。我以前遇到过相同类型的问题…我的SIM2未激活。SIM1处于活动状态。是否有方法检测活动sim?否。我们可以检查网络是否可用,但没有活动/否的确切含义,因此我们无法激活sim并使用SmsManager发送。getSmsManagerForSubscriptionId(),在SDK=25的RedMi 4A上仍然出现错误。请告诉我如何在RedMi 4A上设置此选项
sms_maintained:
git:
url: https://github.com/andreimc/flutter_sms.git