注意:与第一个手电筒程序 比较特别的地方就是 拨打电话需要权限,那么权限怎么设置呢?
MainActivity具体实现:
package com.mth.phone;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
/**
* 说明:本程序的目的是编写一个电话拨号器
*
*
*/
public class MainActivity extends Activity implements OnClickListener {
private EditText ed;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 夹在布局文件
setContentView(R.layout.activity_main);
// 获取拨打电话按钮
Button b = (Button) findViewById(R.id.button1);
// 获取输入框
ed = (EditText) findViewById(R.id.et_phone);
// 给按钮设置事件 第一种方式
// b.setOnClickListener(new OnClickListener() {
//
// @Override
// public void onClick(View v) {
// callphone();
// }
// });
// 最常用的点击事件 让MainActivity实现点击事件的接口
b.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
callphone();
break;
default:
break;
}
}
private void callphone() {
/*
* 内部类调用外部方法 获取号码 ed = (EditText)
* MainActivity.this.findViewById(R.id.et_phone);
*/
String phone_num = ed.getText().toString().trim();// 防止电话号码输入空格
/*
* 判断号码是否为空
*/
if (TextUtils.isEmpty(phone_num)) {
Toast t = Toast.makeText(MainActivity.this, "输入号码不能为空!",
Toast.LENGTH_LONG);
t.show();
}
/*
* 意图 想干一件什么事情
*/
Intent in = new Intent();
/*
* 动作 打电话
*/
in.setAction(Intent.ACTION_CALL);
/*
* Url统一资源定位符 Uri统一资源标识符 如果是网站的话
* in.setData(Uri.parse("http://www.baidu.com")); 要打的号码
*/
in.setData(Uri.parse("tel:" + phone_num));
/*
* 开启新的界面 首先在AndroidManifest.xml 清单文件中 设置拨打电话权限 Permissions中
* 添加android.permission.CALL_PHONE这个权限
*/
startActivity(in);
}
}