SMSをユーザーのリストにオプションで送信できるアプリを作成しています。このアプリは現在、デバイスがMFMessageComposeViewController.canSendText()を使用してテキストメッセージの送信を許可しているかどうかを検出し、結果が真の場合にのみ「SMS送信」ボタンを表示します。iOS SMS機能の検出方法(一般的なテキストメッセージではありません)
今日私のユーザーの一人は、彼がWi-Fi専用iPadのボタンを押すと何も起こらなかったと訴えていました。それが判明したように、SMSがサポートされていなくても、iOSデバイスがiMessage機能をオンにしている場合、canSendText()もtrueを返します。 iOS設定でiMessage機能をオフにすると、「SMS送信」ボタンが無効になります。
iMessage経由でメッセージを送信する際の問題は、一部の受信者がiMessageをオンにしてテキストメッセージを受信することにあります。しかし、iMessageを持たない受信者(電源が切れているか、最初はAppleデバイスを使用していない可能性があります)では、それらのメッセージは到着しません。 (MFMessageComposeViewControllerが最終的に表示されたら、それらのアドレスは赤でマークされていますが、平均的なユーザーはメッセージが配信されないということを理解できません)。具体的には、一般的にテキストメッセージ(SMS、iMessage、MMS)だけでなく、
多くの場合、それがうまくいくようです。ありがとう。しかし、私はこれがうまくいかないコーナーケースを想像することができます。 SIMの有効期限が切れている、または計画がSMSメッセージ(例えば、データのみ)を許可していないユーザなど。これらの事件にも取り組む方法があるのであれば、どんな考えですか? –
@WouterLiefting:私はそれがプログラム的に可能であるとは思わない。期限切れのSIMの場合は、そのSIMを挿入して上記のコードを実行して値を確認することができます。私は1つを持っていないので、期限切れのSIMでテストしていない。 – Maulik