Android拨号器的实现

12年前
Android自带了拨号功能和拨号器,但是在很多的应用中,需要在自己的应用中集成拨号的功能,方便客户直接点击

就可以完成打电话,所以这样的调用Android拨号器的功能还是非常有实用价值的,下面我们来介绍一下Android拨号器

的实现。

调用Android自带的拨号功能其实我们是使用满足他的意图对象而实现调用的,下面我们首先来看一下主要的

Activity代码

  1. package com.bird.phone;  
  2.   
  3. import android.app.Activity;  
  4. import android.content.Intent;  
  5. import android.net.Uri;  
  6. import android.os.Bundle;  
  7. import android.view.View;  
  8. import android.widget.Button;  
  9. import android.widget.EditText;  
  10.   
  11. public class PhoneActivity extends Activity {  
  12.     private EditText text;//寻找空间这种事情只需要做一次就够了  
  13.     /** Called when the activity is first created. */  
  14.     @Override  
  15.     public void onCreate(Bundle savedInstanceState) {  
  16.         super.onCreate(savedInstanceState);  
  17.         setContentView(R.layout.main);  
  18.         text = (EditText) findViewById(R.id.mobile);//得到文本输入框  
  19.         Button button = (Button) this.findViewById(R.id.button);//根据id寻找控件  
  20.         button.setOnClickListener(new View.OnClickListener() {  
  21.               
  22.             @Override  
  23.             public void onClick(View v) {  
  24.                 String mobileText = text.getText().toString();  
  25.                 Intent intent = new Intent();//创建一个意图对象,用来激发拨号的Activity  
  26.                 intent.setAction("android.intent.action.CALL");  
  27.                 intent.setData(Uri.parse("tel:"+mobileText));  
  28.                 startActivity(intent);//方法内部会自动添加类别,android.intent.category.DEFAULT  
  29.             }  
  30.         });//添加点击事件   
  31.     }  
  32.     /* 
  33.     //创建内部类实现回调对象 
  34.     private final class ButtonClick implements View.OnClickListener{ 
  35.  
  36.         @Override 
  37.         public void onClick(View v) { 
  38.              
  39.             String mobileText = text.getText().toString(); 
  40.             Intent intent = new Intent();//创建一个意图对象,用来激发拨号的Activity 
  41.             intent.setAction("android.intent.action.CALL"); 
  42.             intent.setData(Uri.parse("tel:"+mobileText)); 
  43.             startActivity(intent);//方法内部会自动添加类别,android.intent.category.DEFAULT 
  44.         } 
  45.          
  46.     }*/  
  47. }  


大部分介绍都放在了代码的注释上面,其实还是很简单的。

然后最主要的就是配置文件了

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.bird.phone"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.       
  7.      <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8"/>  
  8.      <uses-permission android:name="android.permission.CALL_PHONE"/>  
  9.        
  10.     <application  
  11.         android:icon="@drawable/ic_launcher"  
  12.         android:label="@string/app_name" >  
  13.         <activity  
  14.             android:name=".PhoneActivity"  
  15.             android:label="@string/app_name" >  
  16.             <intent-filter>  
  17.                 <action android:name="android.intent.action.MAIN" />  
  18.                 <category android:name="android.intent.category.LAUNCHER" />  
  19.             </intent-filter>  
  20.         </activity>  
  21.     </application>  
  22.   
  23. </manifest>  

主要是权限问题
  1. <uses-permission android:name="android.permission.CALL_PHONE"/>  
  1. 调用拨号功能需要有权限调用拨号,这个东西会在用户安装这个应用的时候提示你是否允许他使用拨号的功能,好,下面就是一个  
  1. 界面的问题了  
  1. main.xml页面文件如下  
  1. <pre name="code" class="html"><?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical" >  
  6.   
  7.     <TextView  
  8.         android:layout_width="fill_parent"  
  9.         android:layout_height="wrap_content"  
  10.         android:text="@string/mobile" />  
  11.        
  12.     <EditText   
  13.         android:layout_width="fill_parent"  
  14.         android:layout_height="wrap_content"  
  15.         android:inputType="text"  
  16.         android:id="@+id/mobile"  
  17.        />  
  18.       
  19.     <Button   
  20.         android:layout_width="wrap_content"  
  21.         android:layout_height="wrap_content"  
  22.         android:text="@string/button"  
  23.         android:id="@+id/button"  
  24.         />  
  25. </LinearLayout>  

然后是strings.xml
  1. <pre name="code" class="html"><?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.   
  4.     <string name="hello">Hello World, PhoneActivity!</string>  
  5.     <string name="app_name">Phone</string>  
  6.     <string name="mobile">请输入手机号</string>  
  7.     <string name="button">拨号</string>  
  8. </resources>  

好,至此一个简单的Android拨号器就完成了,功能虽小,但是使用的地方还是很多的.