1

Motorola デバイスでテストしているダイヤラー アプリと、SDK マネージャーからダウンロードしたエミュレーター イメージを開発しています。

ユーザーは番号を入力するか、最近の通話や連絡先から番号を選択します。次に、次のように呼び出しを開始します (ダイヤル トーンを送信する前に遅延が発生するように、コンマが挿入されています)。

String url = "tel:" + preDial + " ,,, " + postDial;
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(url));
startActivity(intent);

私の電話とエミュレーターでは、電話アプリはpreDial連絡先名とともに表示され、最近の通話履歴に正常に挿入されます。ただし、友人の Samsung Charge でテストしたところ、URL の内容が表示されました (もちろん、「tel:」を除いて)。たとえばpreDial = "15555555555"postDial = "1111"電話アプリで 15555555555,,,1111 と表示され、連絡先に ,,,1111 が追加された番号がないため、対応する連絡先名が表示されない場合。これはまた、連絡先のないこの厄介な番号がそこに保存されているため、通話ログを台無しにします. これは、Samsung が携帯電話をどのように実装したかによるものだと思いますが、それを回避する方法があることを願っています。

通話履歴から削除することで通話履歴を修正できますLIKE preDialが、電話アプリでの番号の表示方法に関する問題は残ります。これがSamsungよりも一般的な問題であるかどうか、またそれを回避する方法があるかどうかを知っている人はいますか?

4

2 に答える 2

1

間にコンマを使用するという考えに至らなかったので、モトローラが実装した方法だと思います..単にコンマなしで試しましたか?String url = "tel:" + preDial + postDial;

編集:@RetoMeierによるこの説明/アドバイスを確認してください..

それが役に立てば幸いです。あなたのUIが私のコメントダウンのものよりも優れていることを本当に願っています.. ;)

乾杯

于 2012-05-22T10:39:05.073 に答える
0

このようなことを試して、

 String tel = preDial + " ,,, " + postDial;
// it will remove all things except number's
                tel = tel.replaceAll("\\D", "");
                Intent callIntent = new Intent(Intent.ACTION_CALL);
                callIntent.setData(Uri.parse("tel:" + tel));
                startActivity(callIntent);
于 2012-05-22T10:42:43.007 に答える