I'm currently working on my 2nd program and stuck with phone calling, sending SMS, emailing, and showing location using Google Map. I'm using ImageButtons for all of these. User doesn't need to type any numbers or addresses (not using EditText to get user input). However, it doesn't work.

For example, when user click on Phone icon, it will make a call. However, I still need a user input (the actual message, not the destination number or email address) for sending SMS and email. I can do it if I use EditText. However, without using EditText, I cannot do it. How do I do this? I've added users permission in manifest file.

PhoneActivity .java

public class PhoneActivity extends Activity {

        ImageButton btnphonecall;
        String phoneNumber = "091111111";

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            this.requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.activity_phone);

            btnphonecall=(ImageButton)findViewById(R.id.imageButton1);

            btnphonecall.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub

                    Intent i = new Intent(Intent.ACTION_CALL);
                                    i.setData(Uri.parse("091111111"));
                                    PhoneActivity.this.startActivity(i); 
                //I've tried startActivity(i) along but still doesn't work 
                }
            });
        }
有帮助吗?

解决方案 2

Try this:

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

其他提示

Use this:

Uri number = Uri.parse("tel:"+091111111 );
Intent dial = new Intent(Intent.ACTION_CALL,
                                    number);
dial.setPackage("com.android.phone");
PhoneActivity.this.startActivity(dial); 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top