0

そこで、グーグルプレイスリファレンス(詳細なウェブサービス)を使用して、「フォーマットされた電話番号」を(256)922-0556の形式で取得しました。目標は、この番号に電話をかけることです。私が試しているのは、インテントを使用することです。ただし、上記の数値は、URI解析方式を使用する形式ではありません。この番号に電話をかける解決策を知っている人はいますか?これをUriデータに変換する別の意図または良い方法はありますか?私はこれの反対がそのように行われるのを見ました:1234567890→(123)456-7890

  String formattedNumber = PhoneNumberUtils.formatNumber(unformattedNumber);

しかし、私はこれの逆をやりたいです。アイデアや代替ソリューションはありますか?これが私のコードです:

protected void onPostExecute(Boolean result){
                Intent callintent = new Intent(Intent.ACTION_CALL);
                callintent.setData(Uri.parse(phoneNum));
                try {
                    startActivity(callintent);
                }catch (Exception e) {e.printStackTrace();}
            }

ここで、phoneNumは、JSONを介してGooglePlacesから取得されたフォーマット済みの電話番号文字列です。

Peotropoのコメントを拡張するには:次の値よりも値を置き換えるためのより良い方法はありますか?

phoneNum = phoneNum.replace(" ", ""); // gets rid of the spaces
phoneNum = phoneNum.replace("-", ""); // gets rid of the -
phoneNum = phoneNum.replace("(", ""); // gets rid of the (
phoneNum = phoneNum.replace(")", ""); // gets rid of the )
4

2 に答える 2

1

これは単純な文字列です。String.replace()メソッドを使用して、余分な文字を削除します。replaceAllメソッドを使用することもできます。

String phoneNumber = "(123)123-456465"
return phoneNumber.replaceAll("[^0-9]", "");

テストされていないドキュメントはここにあります: replaceAll

Java正規表現

于 2012-11-09T18:35:48.047 に答える
0

文字列の置換を行う必要はありません。以下の Spannable コードを使用すると、電話機が自動的に番号を認識して電話をかけることができます。括弧、スペース、およびダッシュを調整します。

 // call the phone
 SpannableString callphone = new SpannableString("Phone: " + phone);
 callphone.setSpan(new StyleSpan(Typeface.BOLD), 0, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
 callphone.setSpan(new URLSpan("tel:"+phone), 7, 21, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
 TextView zphone = (TextView) findViewById(R.id.phone);
 zphone.setText(callphone);
 zphone.setMovementMethod(LinkMovementMethod.getInstance());

表示されます

 Phone: (123) 456-7890

上記のコードで 7,21 が表示されている場所は、( である 8 番目の文字から始まり、電話番号の最後の桁である 21 番目の文字で終わることを示しています。必要に応じて表示するように調整してください。特別なことは何もありません。あなたの見解で行うこと:

 <!-- Phone Number Label -->
 <TextView
    android:id="@+id/phone"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dip"/>
于 2012-11-12T04:24:18.633 に答える