点击应用中的任何电话号码时拨打电话

时间:2014-02-13 10:06:53

标签: android

我想在点击它时拨打该号码,点击我在我的应用程序中提供的电子邮件地址时,应该将电子邮件发送到该电子邮件,

这是我的代码,

tvcontactphone.setOnClickListener(new OnClickListener() {

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

        }
    });

    tvcontactemail.setOnClickListener(new OnClickListener() {

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

        }
    });

现在我应该在这两种方法中写什么来执行动作?

这是我的应用图片,

enter image description here

当我点击红色链接时,它应该移动到电子邮件中,当我点击白色的电话号码时应拨打该号码或者应该转移到电话应用程序,同样应该在电子邮件中完成。

4 个答案:

答案 0 :(得分:2)

  String phoneCallUri = "tel:"+ tvcontactphone.getText().toString();
Intent phoneCallIntent = new Intent(Intent.ACTION_CALL);
phoneCallIntent.setData(Uri.parse(phoneCallUri));
startActivity(phoneCallIntent);

答案 1 :(得分:2)

两者都应该使用意图,例如:

对于邮件,请看这里: Send Email Intent

其中一个答案是,这符合我的需要:

Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
        "mailto","abc@gmail.com", null));
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "EXTRA_SUBJECT");
startActivity(Intent.createChooser(emailIntent, "Send email..."));

对于来电,请看这里: Call intent in Android

其中一个答案是,这符合我的需要:

Intent dial = new Intent();
dial.setAction("android.intent.action.DIAL");
dial.setData(Uri.parse("tel:"));
startActivity(dial);

..你不应该直接从应用程序发起呼叫,最好是制作一个意图,它会拨打拨号器,并随身携带电话号码; - )

答案 2 :(得分:1)

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

答案 3 :(得分:0)

实现此呼叫

tvcontactphone.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
    Intent callIntent = new Intent(Intent.ACTION_CALL);  
    callIntent.setData(Uri.parse("tel:"+tvcontactphone.getText().toString()));  
    startActivity(callIntent);
    }
});

和电子邮件

tvcontactemail.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(android.content.Intent.ACTION_SEND);
        intent.setType("text/plain"); 
        intent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[] { tvcontactemail.getText().toString() });
        intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "SUBJECT");
        intent.putExtra(android.content.Intent.EXTRA_TEXT,YOURTEXT);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(android.content.Intent.createChooser(intent, "Choose an Email client :"));
    }
});