iPhone SDK からプログラムで次のことを行うにはどうすればよいですか。
iPhone SDK を使用してプログラムで電話番号をダイヤルする
iPhone が表示するダイヤル/キャンセルプロンプトをバイパスする
通常の電話に一時停止をプログラムするのと同じように、番号がダイヤルされた後に追加の DTMF を送信します。
電話をかけることはできますがtel://
、ダイヤル/キャンセルのプロンプトが表示され、その後 DTMF が送信されなくなるという問題があります。
iPhone SDK からプログラムで次のことを行うにはどうすればよいですか。
iPhone SDK を使用してプログラムで電話番号をダイヤルする
iPhone が表示するダイヤル/キャンセルプロンプトをバイパスする
通常の電話に一時停止をプログラムするのと同じように、番号がダイヤルされた後に追加の DTMF を送信します。
電話をかけることはできますがtel://
、ダイヤル/キャンセルのプロンプトが表示され、その後 DTMF が送信されなくなるという問題があります。
iPhone SDK では、ダイヤル番号に直接アクセスすることはできません (「悪い」プログラムが携帯電話に侵入し、ミュート状態で 1 分ごとの料金の番号にダイヤルしたため、気付かなかったと想像してください)。
ただし、tel リンクを使用する場合は、一時停止を挿入する「,」文字を送信できるはずです。
したがって、555-1212 をダイヤルするには、4 秒待ってから、タッチ トーンで 12345# を実行します。tel:5551212,,12345# を使用します。
https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/PhoneLinks/PhoneLinks.htmlをご覧ください 。
誰もがあなたができないと言う理由がわかりません... あなたはできます!
NSString *phoneNumber = @"15555551212";
NSString *dtmfAfterPickup = @"1234";
NSString *telString = [NSString stringWithFormat:@"tel:%@,%@", phoneNumber, dtmfAfterPickup];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:telString]];
これにより、ダイヤル/キャンセル プロンプトをバイパスしてphoneNumberにダイヤルされます... 通話が応答されてから 1 秒後に、 dtmfAfterPickup文字列が自動的にダイヤルされます。
デバイスが通話をサポートしているかどうかを検出することをお勧めします
上記の Adam の Apple 開発者リンクによると、iPhone がサポートする電話リンク スキームのさまざまなオプションについて詳しく説明しているこの RFC リンクがあります。
http://www.ietf.org/rfc/rfc2806.txt
これにより、少なくとも URL に「p」を使用して一時停止を挿入できますが、RFC ごとに多くのオプションが指定されています (すべてが必要というわけではありません)。他に何が機能しますか?
CoronaSDK と openurl API を使用して iPhone で試してみました。それは非常にうまく機能します!次のようにします: system.openURL("tel:[電話番号],123"). 追加のコンマでさらに待つことができます。コロナ SDK / iOS7 でテスト済み。
実際に、次の 555-555-4822 EXT 8030 を試してみました。
また、ダイヤルを押した後でもいくつかのトーンを送信しているようです (p の数は遅延の秒数を表します)。ただし、トーンは遠端で期待どおりに応答されていないため、まだ何かが間違っています。
ただし、これは機能しますが、タイミングの問題が発生しやすくなります。tel: 555-555-4822, 8030. これは、接続後 1 秒間 (2 秒間) 一時停止し、8030 トーンを再生します。
これはできません。SDK では、このレベルの詳細で電話機能を制御することはできません。