Android开发之实现拨号功能
在我们刚开始接触Android入门开发时会涉及到如何调用系统拨号功能实现拨号功能,在这里,我们实现调用系统拨号并且把用户输入的号码传递到系统拨号盘,这样也是为了可以让用户检查号码的正确性,给予用户更好的用户体验。
先上图再说:
1.首先我们需要调用系统拨号就需要在AndroidMainifest.xml文件中获取拨打电话的权限。
<uses-permission android:name="android.permission.CALL_PHONE"/>
<RelativeLayout 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:gravity="top"
android:background="@drawable/bacg_"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="52dp"
android:layout_marginTop="23dp"
android:textSize="23dp"
android:text="@string/callname" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:ems="10"
android:inputType="phone" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_below="@+id/editText1"
android:text="@string/callbutton"
android:onClick="callPhone"/>
</RelativeLayout>
3.java实现代码:
package com.example.phone;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.content.Intent;
public class MainActivity extends Activity {
private TextView callname;
private EditText callNumber;
private Button callbutton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
callname = (TextView) findViewById(R.id.textView1);
callNumber = (EditText) findViewById(R.id.editText1);
callbutton = (Button) findViewById(R.id.button1);
}
public void callPhone(View view) {
String number = callNumber.getText().toString();
// 调用系统电话拨号并且把号码传递到系统拨号盘
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:"
+ number));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}