Call intent in Android

前端 未结 7 1225
生来不讨喜
生来不讨喜 2020-12-10 06:16

How can I make call by pressing button? I get my number as a string from EditText. Here is my sample code:

String phone = editPhone         


        
相关标签:
7条回答
  • 2020-12-10 06:36

    I think you missed the "tel:" part in the URI.

    Replace the following..

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

    with

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

    or

    Intent callIntent = new Intent(Intent.ACTION_CALL);
                callIntent.setData(Uri.parse("tel:"+phone));
                startActivity(callIntent);
    
    0 讨论(0)
  • 2020-12-10 06:36
    String PhoneNo="+923341234567"
    Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + PhoneNo));
    startActivity(intent);
    

    and add a permission in manifest

    <uses-permission android:name="android.permission.CALL_PHONE" />
    
    0 讨论(0)
  • 2020-12-10 06:37

    see below code it may help you.

    for call

    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);
    

    for open dialer

    Intent dial = new Intent();
    dial.setAction("android.intent.action.DIAL");
    dial.setData(Uri.parse("tel:"));
    startActivity(dial);
    
    0 讨论(0)
  • 2020-12-10 06:43
    Intent callIntent = new Intent(Intent.ACTION_CALL);
    callIntent.setData(Uri.parse(phone));
    startActivity(callIntent);
    

    above is the only method you use for calling a phone number in android, when you click on the call button a 'dilerpad' activty is started with perpopulated phone number, and the call will go if you press the call button on the dialer pad.

    0 讨论(0)
  • 2020-12-10 06:50

    This simple approach should work for you.

    Ex.

    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);  
       }
    }
    

    You might be using String variable phone out of scope.

    0 讨论(0)
  • 2020-12-10 06:53

    Try this

    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 讨论(0)
提交回复
热议问题