28

Androidでの一時停止とDTMF入力の送信と同様に、一時停止文字「、」をダイヤラに送信しようとしています。これは、HTC Sense電話、さらにはXoomでも機能しますが、NexusOneやT-MobileG2などの「ストックエクスペリエンス」電話では機能しません(Motorola Droidが疑われます)。

これらの電話には、番号をきれいにフォーマットし(つまり、ダッシュを追加して)、コンマ文字を押すと停止しようとするダイヤラがあるようです。興味深いことに、「p」を削除して数字を追加し続けますが、「p」文字を窒息させることはありません。

ActivityManagerに表示される内容は次のとおりです。

I/ActivityManager(   92): Starting activity: Intent { act=android.intent.action.DIAL dat=tel:8883333,444 cmp=com.android.contacts/.DialtactsActivity }

また、これらの電話での動作に違いはなく、エンコードされた形式「tel:8883833%2C444」を試しました。前述のように「p」を試しましたが、これらの文字が削除されたため、ダイヤラーに888-333-3444が正しく入力されておらず、「p」が正しいかどうかはわかりません。

だから、質問:ほとんどまたはすべてのAndroidダイヤラーで機能する一時停止を指定する方法はありますか?

4

6 に答える 6

17

簡単な答え:ネイティブダイヤラを使用することは可能ではないようです。

長い答え:

Androidのネイティブダイヤラは、次のコードを使用して、インテントを使用してダイヤラに渡す番号を抽出します

if ("tel".equals(uri.getScheme())) {
  // Put the requested number into the input area
  String data = uri.getSchemeSpecificPart();
  setFormattedDigits(data, null);
  return true;
} 

メソッド内ではsetFormattedDigits、数値は次のように変換されます。

  String dialString = PhoneNumberUtils.extractNetworkPortion(data);

ドキュメントを見るextractNetworkPortionと、「ネットワークアドレス部分を抽出します[ここで]ネットワークアドレス部分は、DTMF制御桁区切り文字(一時停止または待機)までのすべてです。

そのため、コードは一時停止文字とそれに続くすべてのものを意図的に削除しています。私が考えることができる唯一の選択肢は、ダイヤラを置き換えるか、のACTION_CALL代わりにアクションを使用することですACTION_DIAL。これはダイヤラをバイパスするため、注意して使用する必要があります。

于 2012-02-01T01:06:33.090 に答える
4

ダイヤルの一時停止は30年間カンマでした

AndroidフォンがITUTV.250と互換性がある場合、ATS8 = 2は、コンマによる遅延を2秒に設定する必要があります。(どういうわけか0に設定されている可能性があります)

ITUTは優れた標準組織であり、それらの標準を無料でダウンロードできます。

于 2011-07-30T11:45:50.647 に答える
3

アンドロイドのラテン語のimeソースコードから:

<!-- Pause is a comma. Check PhoneNumberUtils.java to see if this has changed. -->
<Key 
    android:codes="44"
    android:keyLabel="Pause" />

公開されているかどうかは100%わかりませんが、次を使用できる可能性があります。

PhoneNumberUtils.PAUSE
于 2011-04-24T23:31:03.450 に答える
0

「、」が標準ですが、HTCはロジャースマジックで「p」を使用しました。「p」で試しましたか? HTCMagicはpを使用しています

于 2011-05-19T13:22:17.780 に答える
0

これは恐ろしくて危険です。電話で電話会議の電子メールを受信するビジネスマンは、番号を取得するために絶えず前後に切り替える必要があります。

正常に機能させるだけです。

tel://+1-877-555-1212,,,2345678#

番号を一時停止してから、参加者の会議コードをダイヤル877し、電話の任意の場所を選択したときに「Enter」(#)を入力する必要があります。

とても簡単です。これがAndroidで機能しないという事実は、iPhoneの売り込みです。

于 2014-10-03T15:35:34.833 に答える
0

今後の参照用に、 RFC-2806は、電話番号を次の形式で保存することを指定しています。

tel:number;postd=post-dial

意図的なダイヤルのためにnumber開始でき、視覚的な区切り文字として、または数字、大文字のAD 、、、を含めることができ、一時停止および待機することができます。+-.post-dial#*pw

于 2015-12-22T06:40:26.293 に答える