android.net.Uri 拨号,Android APP 两种用程序拨号的方式

想在APP中添加一个拨号功能该怎样做呢?Android提供了两种方式,一种是ACTION_CALL方式直接拨打,另一种是ACTION_DIAL方式打开系统的拨号界面。

下面我们来做个小例子

首先需要在AndroidManifest.xml中添加一个使用权限,这个容易忘哈哈。

然后搭一个简单的界面测试一下,下面是布局文件代码

下面是对应的Activity代码:

packagechengyujia.androidtest;importandroid.app.Activity;importandroid.content.Intent;importandroid.net.Uri;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.EditText;importandroid.widget.Toast;public class CallActivity extendsActivity {privateEditText etPhone;

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.activity_call);

etPhone=(EditText) findViewById(R.id.etPhone);

}//ACTION_CALL方式拨打电话(直接拨打)

public voidonClickActionCall(View v) {//这里的Intent.ACTION_CALL实际就是一个特定的字符串,//ACTION_CALL = "android.intent.action.CALL",//告诉系统我要直接拨号了。

call(Intent.ACTION_CALL);

}//ACTION_DIAL方式拨打电话(打开拨号界面)

public voidonClickActionDial(View v) {//同理,这里的Intent.ACTION_DIAL也是一个特定的字符串//ACTION_DIAL = "android.intent.action.DIAL"//告诉系统我要打开拨号界面,并把要拨的号显示在拨号界面上,由用户决定是否要拨打。

call(Intent.ACTION_DIAL);

}private voidcall(String action){

String phone=etPhone.getText().toString();if(phone!=null&&phone.trim().length()>0){//这里"tel:"+电话号码 是固定格式,系统一看是以"tel:"开头的,就知道后面应该是电话号码。

Intent intent = new Intent(action, Uri.parse("tel:" +phone.trim()));

startActivity(intent);//调用上面这个intent实现拨号

}else{

Toast.makeText(this, "电话号码不能为空", Toast.LENGTH_LONG).show();

}

}

}

下面运行一下,看看效果。

界面截图如下:

b48413b03d3a22d895b428ef5d27ff65.png

我填写了电话号码10086,下面点击第一个按钮“ACTION_CALL方式直接拨打”,

截图如下:

32e946f706696bfdf301f0b882be46dc.png

发现并没有直接拨出去,而是给了用户一个提示,让用户选择是否真的要拨号,这也是防止有人作恶啊。科技本应该让生活更美好,而不是让生活更糟糕,但不是每个人都这么想的哦,所以不得不防啊。系统做的对,咱继续测试,点击“允许一次”,就开始真正拨号了,截图如下:

d9b3ee66917b07981006edd032e4f365.png

挂了电话,回到刚才的测试界面,点击第二个按钮“ACTION_DIAL方式打开拨号界面”,下面是点击后的截图:

405f7f7a2ad4b990d0579424f46a7da0.png

这就是系统的拨号界面,同时把要拨的号码也给用户写好了,要不要拨就由用户决定喽。

实际开发中用哪种方式,这个要看具体情况了。好了,关于Android APP 用程序实现拨号功能就写这些吧。

工作不是生活的全部,最后放一个搞笑的段子,乐呵乐呵

菩提老祖将悟空唤至身前:“你已学会长生不老术和七十二变,今日为师欲传授你新的法术。” 悟空道:“是何法术?”菩提老祖道:“看到这天上的云彩了吗?这边有七朵云彩,那边有五朵云彩,一共有几朵?” 悟空答:“十二朵。” 菩提老祖道:“嗯,我要教你的就是云计算。”

原文:http://www.cnblogs.com/chengyujia/p/4998446.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值