1

edittextから番号を取得するときに電話をかけるにはどうすればよいですか?これを試してみましたが、うまくいきません。変数番号をUriに渡すことに問題があります。parse()はgettextの内部にある必要がありますか?

public String string;
public String number;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


     EditText txtcallnumber;
     txtcallnumber = (EditText)findViewById(R.id.callnumber);
     string = txtcallnumber.getText().toString().trim();//There no work call
       number = "tel:" + string;

    Button button = (Button) findViewById(R.id.button1);
    button.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
          call();
        }
      });
}


public void call() {
try {
   Intent callIntent = new Intent(Intent.ACTION_CALL);
    //callIntent.setData(Uri.parse("tel:xxxxxxx")); //This work
    string = txtcallnumber.getText().toString().trim();
       number = "tel:" + string;//There work call
    callIntent.setData(Uri.parse(number));
    startActivity(callIntent);


} catch (ActivityNotFoundException activityException) {
     Log.e("helloandroid dialing example", "Call failed");
}
4

2 に答える 2

0

onCreateメソッドでは、次の必要はありません。

 string = txtcallnumber.getText().toString().trim();
 number = "tel:" + string;

onCreateはディスプレイの設定にほとんど使用され、画面が設定される前はユーザーによる入力はありませんが、テキストを入力してボタンを押した後のonCallメソッドでは...ご存知のとおりです。

さらに、何も入力されていないかどうかを確認するためにこれが必要です。

if(string!=null){
  try{try {
Intent callIntent = new Intent(Intent.ACTION_CALL);

string = txtcallnumber.getText().toString().trim();
   number = "tel:" + string;
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse(number)));


} catch (ActivityNotFoundException activityException) {
 Log.e("helloandroid dialing example", "Call failed");

      }}else{
    Log.d("helloandroid dialing example","nothing entered");}
于 2012-12-29T17:00:00.597 に答える
0

マニフェスト ファイル内に Permission を追加する必要があります ::

<uses-permission android:name="android.permission.CALL_PHONE">

call() メソッド内でこれらのインテントを使用してみてください::

number=edittext.getText().trim();
no="tel:"+number;

startActivity(new Intent(Intent.ACTION_CALL, Uri.parse(no)));
于 2012-12-29T14:59:50.497 に答える