在Android模拟器中开发时,有时需要模拟拨打电话功能,请问如何实现Android电话拨号器

推荐图书

  • Android 2高级编程(第2版)
  • Google Android SDK开发范例大全(第2版)
  • 疯狂Android讲义


1个回答

<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" >

     <TextView
         android:id="@+id/textView1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/phone_tl"
         tools:context=".MainActivity" />

     <EditText
         android:id="@+id/editText1"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_below="@+id/textView1"
         android:layout_marginTop="14dp"
         android:ems="10" >

         <requestFocus />
     </EditText>

     <Button
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_below="@+id/editText1"
         android:id="@+id/btn_call"
         android:text="@string/button" />

 </RelativeLayout>


package com.example.phone;

 import android.net.Uri;
 import android.os.Bundle;
 import android.app.Activity;
 import android.content.Intent;
 import android.view.Menu;
 import android.view.View;
 import android.widget.Button;
 import android.widget.EditText;

 /**
  * @author fanchangfa
  * 拨打电话模拟
  */
 public class MainActivity extends Activity {

     private EditText phone_text;    //获取用于输入电话号码的文本框对象
     private Button btn_call;        //获取拨打电话的Button对象
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);

         /*
          *     初始化控件
          **/
         phone_text = (EditText) this.findViewById(R.id.editText1);

         btn_call = (Button) this.findViewById(R.id.btn_call);

         btn_call.setOnClickListener(new btn_listener());
     }

     //拨打电话的按钮单击事件:
     private final class btn_listener implements View.OnClickListener{
         public void onClick(View v)
         {
             String phone = phone_text.getText().toString();

             Intent Int_call = new Intent();

             Int_call.setAction("android.intent.action.CALL");
             Int_call.setData(Uri.parse("tel:"+phone));

             //使用Intent时,还需要设置其category,不过
             //方法内部会自动为Intent添加类别:android.intent.category.DEFAULT

             startActivity(Int_call);
         }
     }

     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         getMenuInflater().inflate(R.menu.activity_main, menu);
         return true;
     }
 }