安卓系统一般自带有:电话,邮件,浏览器功能;
本文章简单,讲解电话自带的电话拨号功能进行,电话拨号。
电话拨号器的:逻辑很简单
- 首先获取输入的电话号码
- 然后在点击按钮的时候,发送一个隐式的Intent的给系统
- 系统去寻找自带的拨号Activity启动,然后拨打号码
在查看Android原始的电话应用,获取拨号的Activity如下:
这里写图片描述
可以看到我们所需要的隐式条件三个<intent-filter>满足其一即可启动该Activity;
java代码如下:
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class PhoneCallActivity extends AppCompatActivity {
private EditText phone_call_edittext;
private Button phone_call_button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_phone_call);
phone_call_edittext = (EditText) findViewById(R.id.phone_call_edittext);
phone_call_button = (Button) findViewById(R.id.phone_call_button);
phone_call_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
String phoneNumber = phone_call_edittext.getText().toString();
if("".equals(phoneNumber)){
Toast.makeText(PhoneCallActivity.this,"电话号码不能为空",Toast.LENGTH_LONG).show();
return;
}
Intent intent = new Intent();
//需要权限:android.permission.CALL_PHONE
intent.setAction("android.intent.action.CALL");
// intent.addCategory("android.intent.category.DEFAULT");所以这一行可以省略
intent.setData(Uri.parse("tel:" + phoneNumber));
//方法内部会自动为Intent添加类别:android.intent.category.DEFAULT
startActivity(intent);
}catch (Exception e){
Toast.makeText(PhoneCallActivity.this,"输入有误",Toast.LENGTH_LONG).show();
}
}
});
}
}
XML布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.administrator.foundationdemo.PhoneCallActivity">
<EditText
android:id="@+id/phone_call_edittext"
android:layout_width="match_parent"
android:layout_height="50dp"
android:singleLine="true"
android:inputType="number|phone"
android:hint="请输入电话号码"/>
<Button
android:id="@+id/phone_call_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="拨打号码"/>
</LinearLayout>
注意:
- 在调用安卓拨号功能时需要在AndroidManifest添加权限“android.permission.CALL_PHONE”
- 这里的电话号码不只是手机号
- 注意控制 号码String的内容只能是数字
XML布局样图:
这里写图片描述
希望对你们有帮助!!!!
网友评论