web-dev-qa-db-ja.com

Android

ボタンを押して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を取得しています

7
user1383729

この単純なアプローチはあなたのために働くはずです。

例.

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をスコープ外で使用している可能性があります。

27
MKJParekh

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);
10
Shashank Kadne

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

電話用

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);
5
Dhaval Parmar
String PhoneNo="+923341234567"
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + PhoneNo));
startActivity(intent);

マニフェストに権限を追加します

<uses-permission Android:name="Android.permission.CALL_PHONE" />
3
M.Saleh
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse(phone));
startActivity(callIntent);

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

2
Shams Ud Din

これを試して

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);
0
Mwongera808
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:" +"93");
intent.setData(Uri.parse(uri));
startActivity(intent);
0
Parveen Sharma