Android 未收到短信…仅在某些情况下…运营商/国家/地区?

Android 未收到短信…仅在某些情况下…运营商/国家/地区?,android,sms,samsung-mobile,sms-gateway,smsmanager,Android,Sms,Samsung Mobile,Sms Gateway,Smsmanager,我有一个我无法解决的技术问题,因为问题只发生在我所在星球的另一边 因此,我希望在这些技术方面有更多经验的人能够提出一种替代方法或途径来纠正它,或者直接“认识”问题的根源 情景: 我已经为三星Gear2开发了一个应用程序,它使用其主机配套的android应用程序发送短信 在我使用应用程序对执行的所有测试中,一切都按预期进行 消息由安卓设备的SMS管理器发送,收件人接收,没有问题,即使在添加和删除前导1时也是如此 往返美国的10位和11位数字,带或不带前导+符号全通 然而当将应用程序发送给三星进行审

我有一个我无法解决的技术问题,因为问题只发生在我所在星球的另一边

因此,我希望在这些技术方面有更多经验的人能够提出一种替代方法或途径来纠正它,或者直接“认识”问题的根源

情景: 我已经为三星Gear2开发了一个应用程序,它使用其主机配套的android应用程序发送短信

在我使用应用程序对执行的所有测试中,一切都按预期进行

消息由安卓设备的SMS管理器发送,收件人接收,没有问题,即使在添加和删除前导1时也是如此

往返美国的10位和11位数字,带或不带前导+符号全通

然而当将应用程序发送给三星进行审查和测试时,他们在发送某些数字时总是遇到问题。据我所知,发送的数字和失败的数字之间唯一不同的是,第一个数字有一个前导0,第二个没有

这必须与他们正在测试此功能的事实相结合 在不同的大陆/国家进行测试(美国)。 当我的测试成功发送和接收消息时,无论 该号码是同一号码的10位版本或11位版本

此外,使用不同的运营商(可能是亚洲的电信运营商)与我正在测试的运营商(贝尔-美国)之间也存在差异

说得清楚一点,我只是通过Gear2应用程序编写消息,然后通过三星的附件协议将其发送到android设备,该协议运行完美

在此基础上,我使用标准的基本实现

Android的SMSManager

getDefault()

除“destinationAddress”、“text”之外的所有空值, 还有“哨兵”


问题:从最重要到最不重要的顺序 1。是否有特定的“常规”短信应用程序开发人员使用,以最大限度地提高 成功率 无论用户从哪个国家或运营商向哪个国家或运营商发送短信,无论输入的号码是否包含主要的出口代码和国家代码,发送短信的数量

(即:根据检查区域设置添加或删除加号(+)) 正在使用,并使用某种 “SMS编号标准”,更改服务中心地址/SMSC 地址(AT+CSCA),等

2.是否有某种详细说明一般“陷阱”的信息来源可供查找 取决于各种手机/短信服务提供商/运营商?(据我所知至少有4个)

3.如果消息没有实际发送,为什么安卓的短信管理员会报告“短信已发送”

注意:我意识到你也可以收听android发送的“第二次”广播 确认收件人“实际”收到了该消息,但如果该消息是可纠正的(至少从程序角度来看),则会引发有关如何纠正该情况的问题

4.我的应用程序,实际上是三星Gear2应用程序与android应用程序集成, 并且仅仅将发送消息的责任委托给安卓设备SMSManager,是否对未发送的消息负责

注:我忍不住觉得三星要求我处理 超出范围且与预期应用程序无关的问题 功能性,尽管如此,我确实理解 由于齿轮2的性质,默认情况下,问题必须落在我身上 应用程序依赖android设备完成预期操作 由Gear2应用程序启动,但我必须走多远才能确保标准 除了提供有用的反馈之外,android设备用户的短信功能 至于潜在的问题可能是什么。我不得不假设这一点 使用设备本身来编写消息可能存在问题 而不是Gear2应用程序,给出了完全相同的地址/号码

5.假设该应用程序正在亚洲(韩国、三星总部)进行测试。。。假设用于测试SMS的载波是SK Telecom

(我认为这是韩国最大的航空公司)

为了在同一个国家成功发送短信,是否必须以零开头所有号码?如果是这样的话,除了美国和加拿大(这两个国家似乎都是这样)以外的所有国家都是一样的吗

6.在开发短信应用程序时,这是一个普遍需要解决的问题,还是我可以根据三星过度勤奋的测试实践以及不熟悉的测试实践引入的独特变量,从其他情况中挑出这一特殊情况 电话服务提供商和更不熟悉的地理位置/国家代码和编号方案


问题*(仅在三星测试期间发生): 测试1:

从号码为010-6627-xxxx(11位)的存储联系人发送短信

结果:

安卓的短信管理器将短信报告为已发送。接受者 立即收到短信

结论:

短信发送成功

测试2:

通过手动输入号码10-6627-xxxx(10位数字)发送SMS(与前一个号码相同,无前0位)

结果:

安卓的短信管理器将短信报告为已发送。但是, 收件人从未收到短信

结论:

?

无法复制此问题(至少在美国不是),因为:

11位数字(前导1)和10位数字 (无前导1)<
sendTextMessage(String destinationAddress, String scAddress, String 

text, PendingIntent sentIntent, PendingIntent deliveryIntent)
Successfully send the message as expected.