9

callボタンを押して作るにはどうすればいいですか?から自分の番号を文字列として取得しますEditText。ここに私のサンプルコードがあります:

String phone = editPhone.getText().toString();
btnPhone.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {

                call();
            }
        });
public void call() {
    try {
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse(phone));
        startActivity(callIntent);
    } catch (ActivityNotFoundException activityException) {
         Log.e("myphone dialer", "Call failed", e);
    }
}

permissionsすべてをマニフェスト ファイルに追加しました。

しかし、私は得ていますNullPointerexception

4

7 に答える 7

27

この単純なアプローチはうまくいくはずです。

元。

public class CallActivity extends Activity{
   String phone = "";

   onCreate()
   {
        btnPhone.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View arg0) { 
                phone = editPhone.getText().toString(); 
                call(); 
            } 
        });    
   }

   public void call() {   
            Intent callIntent = new Intent(Intent.ACTION_CALL);          
            callIntent.setData(Uri.parse("tel:"+phone));          
            startActivity(callIntent);  
   }
}

phone範囲外の文字列変数を使用している可能性があります。

于 2012-05-09T06:07:28.200 に答える
11

URIの「tel:」の部分を見逃したと思います。

以下を交換してください。

Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse(phone));
        startActivity(callIntent);

Intent callIntent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phone));
       startActivity(callIntent);

また

Intent callIntent = new Intent(Intent.ACTION_CALL);
            callIntent.setData(Uri.parse("tel:"+phone));
            startActivity(callIntent);
于 2012-05-09T05:54:49.277 に答える
5

以下のコードを参照してください。

通話用

EditText num = (EditText)findViewById(R.id.number_edit);
String uri = "tel:" + num.trim();
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse(uri));
startActivity(intent);

オープンダイヤラ用

Intent dial = new Intent();
dial.setAction("android.intent.action.DIAL");
dial.setData(Uri.parse("tel:"));
startActivity(dial);
于 2012-05-09T06:11:54.367 に答える
2
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse(phone));
startActivity(callIntent);

上記は、Androidで電話番号を呼び出すために使用する唯一の方法です。通話ボタンをクリックすると、「dilerpad」アクティビティが入力された電話番号で開始され、ダイヤラパッドの通話ボタンを押すと通話が開始されます。

于 2012-05-09T05:45:16.757 に答える
0

これを試して

EditText num = (EditText)findViewById(R.id.phone_number);
String uri = "tel:" + num.trim();
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(uri));
startActivity(intent);
于 2017-07-22T10:32:14.813 に答える