我有一个我无法解决的技术问题,因为这个问题只发生在我所在的地球的另一端。
所以我希望对这些技术有更多经验的人可以提出一种替代方法或路径来纠正它,或者可能正确地“识别”问题的根源。
情景:
我为三星 Gear2 开发了一个应用程序,它使用它的主机配套 android 应用程序发送 SMS 消息。
在我使用应用程序对执行的所有测试中,一切都按预期工作。
消息由 android 设备的 SMS 管理器发送并由收件人接收,即使添加和删除前导 1 也是如此。
往返美国的 10 位和 11 位数字,带和不带前导 + 号都可以通过。
但是,在将应用程序发送给三星进行审查和测试时,他们在发送某些数字时一直遇到问题。据我所知,发送的数字和失败的数字之间唯一不同的是,第一个有前导 0,而第二个没有。
这必须与他们在不同的大陆/国家/地区测试此功能的事实相结合,而不是在我进行测试的地方(美国)。由于我的测试成功发送和接收消息,无论该号码是同一号码的 10 位版本还是 11 位版本。
除了我正在测试的运营商(贝尔 - 美国)之外,使用不同运营商(可能是亚洲的电信)也出现了差异......
需要明确的是,我只是通过 Gear2 应用程序编写消息并通过三星的附件协议将其发送到 android 设备,该协议可以完美运行。
从那里我使用标准的基本实现
Android 的短信管理器
获取默认值()
和
sendTextMessage(String destinationAddress, String scAddress, String
text, PendingIntent sentIntent, PendingIntent deliveryIntent)
所有空值除“destinationAddress”、“text”和“sentIntent”外。
问题:按照最重要到最不重要的顺序
1. 无论用户从哪个国家或运营商发送消息,无论输入的号码是否包含主要出口和国家,是否有特定的“例程”短信应用程序开发人员使用来最大化发送短信的成功率代码?
(即:添加或删除加号(+),检查正在使用的区域设置并使用某种“SMS 编号标准”相应地调整号码,更改服务中心地址/SMSC 地址(AT+CSCA)等...)?
2.是否有某种信息源详细说明了一般的“GOTCHAS”,取决于各种 Cell/SMS 服务提供商/运营商?(我知道至少有 4 个)。
3.如果消息没有实际发送,为什么Android 的 SMSManger 会报告“SMS Sent”。
注意:我意识到人们也可以收听“第二个”广播 android 发送确认消息是“实际上”被接收者收到的,但这引发了关于如何纠正这种情况的问题,如果它完全可以纠正(至少从程序化的观点。)
4.我的应用程序,实际上是一个与安卓应用程序集成的三星Gear2应用程序,只是将发送消息的责任委托给安卓设备SMSManager,是否应该对消息未发送负责?
注意:我不禁觉得三星要求我处理超出范围且与应用程序预期功能无关的问题,尽管我确实理解默认情况下至少部分问题必须由我来解决,即Gear2 应用程序的性质依赖于 android 设备来完成由 Gear2 应用程序启动的预期操作,但我必须走多远才能确保用户 android 设备的标准 SMS 功能除了提供有关潜在问题可能的有用反馈是。我不得不假设使用设备本身而不是 Gear2 应用程序来编写消息会存在这个问题,给定完全相同的地址/号码。
5.假设该应用正在亚洲(韩国,三星总部)进行测试......并且假设用于测试SMS的运营商是SK Telecom
(我认为是韩国的顶级运营商)...
为了在同一个国家/地区成功发送短信,是否必须以零开头所有数字?如果是这样,除了美国和加拿大以外的所有国家都是一样的吗(这两种方式似乎都有效)?
6.在开发 sms 应用程序时,这是一个普遍需要处理的问题吗?或者我可以根据三星过度勤奋的测试实践以及不熟悉的电话服务提供商甚至更不熟悉的电话服务提供商引入的独特变量,将这种特殊情况从其他情况中挑选出来吗?地理位置/国家代码和编号方案。
问题 *(仅在三星测试期间发生):
测试 1:
从存储的联系人发送短信,号码为 010-6627-xxxx(11 位)
结果:
SMS 由 android 的 SMSManager 报告为已发送。收件人立即收到 SMS 消息。
结论:
短信发送成功。
测试 2:
从手动输入号码发送短信 10-6627-xxxx(10 位数字)(与之前的号码相同,没有第一个 0)
结果:
SMS 由 android 的 SMSManager 报告为已发送。但是,收件人永远不会收到 SMS 消息。
结论:
?
无法复制这个问题(至少在美国没有):
11 位数字(前导 1)和10 位数字(无前导 1)
Successfully send the message as expected.
该问题仅在三星应用测试部门的设备测试/认证期间发生,并且似乎仅在手动输入目标地址/号码时发生。
存储的联系人(出于某种原因)始终有效。
在三星因在我自己的测试环境中无法重现的问题而被三星拒绝了3 次“GOOD TO GO APPLICATION”的认证后,我发现自己用这个“ HAIL MARY PASS ”变成了SOF的好人。
关于发送到 SMSManager 的号码,我根本没有做任何更改,但我想知道这是否是问题所在。
额外信息: 所有使用的设备都使用 android 4.2 及更高版本。我的测试都是使用 T-Mobile Galaxy 手机完成的,有时还使用来自美国北佛罗里达州的 google/Gmail/GoogleVoice 短信/彩信服务。
关于三星的旁注......三星的测试人员对他们的测试环境的细节非常了解,包括从他们的角度来看可能是什么问题,这很不幸,因为我越来越确定这个问题充其量只是微不足道的,而且可能很容易对您自己的国家/运营商发送成功 SMS 消息的方法有基本的了解即可修复。 似乎他们甚至没有像任何用户那样努力启发我或对他们的测试数字进行任何必要的调整以获得成功的结果。
对这个问题的任何见解都将受到极大的赞赏!!!