Android--入门---9---(android 拨号器----调用系统自带的拨号Acitivity)

来源:互联网 发布:如何提高网络上传速度 编辑:程序博客网 时间:2024/05/17 08:47

1.用户的权限:保护用户的隐私信息

        <uses-permission android:name="android.permission.CALL_PHONE" />

代码如下:

清单文件:AndroidManifest.xml

源码:DialActivity.java

字符串文件:String.xml

布局文件:dial.xml

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.hisoft.qyq"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7" />

    <uses-permission android:name="android.permission.CALL_PHONE" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".DialActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

------------------------------------------------------------------------------------------------------------------------------------

  DialActivity.java

package com.hisoft.qyq;

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

public class DialActivity extends Activity {
    private Button btn_dial;
    private EditText edt_mobile;
    private TextView txv_mobile;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dial);
        init_component();
    }

    public void init_component() {
        btn_dial = (Button) this.findViewById(R.id.btn_dial);

   //        btn_dial.setOnClickListener(new ButtonOnclickListener());//使用内部类进行按钮监听的注册
        btn_dial.setOnClickListener(new OnClickListener() {//使用匿名内部类,当代码较多时,很难看懂,建议使用ButtonOnclickListener内部类
            
            @Override
            public void onClick(View v) {
                String num = edt_mobile.getText().toString();
                Intent intent = new Intent();
                intent.setAction("android.intent.action.CALL");//调用android自带的拨号Activity
                intent.addCategory("android.intent.category.DEFAULT");
                intent.setData(Uri.parse("tel:"+num));
                startActivity(intent);//启动系统中的任何Acitivity
                
            }
        });
        edt_mobile = (EditText) this.findViewById(R.id.edt_mobile);
        txv_mobile = (TextView) this.findViewById(R.id.txv_mobile);//通过此方法获得布局文件中的控件(但是在布局文件中必须声明控件ID,以供查找)
    }

       
   
     class ButtonOnclickListener implements OnClickListener{

    //
    //        @Override
    //        public void onClick(View v) {
    //            String num = edt_mobile.getText().toString();
    //            Intent intent = new Intent();
    //            intent.setAction("android.intent.action.CALL");
    //            intent.addCategory("android.intent.category.DEFAULT");
    //                intent.setData(Uri.parse("tel:"+num));
    //                startActivity(intent);
    //        }
    //        
    //    }
}

------------------------------------------------------------------------------------------------------------------------------------

  dial.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
         android:id="@+id/txv_mobile"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/the_number" />

    <EditText
        android:id="@+id/edt_mobile"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/the_number" />

    <Button
        android:id="@+id/btn_dial"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/dial" /><--次表达式表示使用在String中定义的字符串常量-->

</LinearLayout>

------------------------------------------------------------------------------------------------------------------------------------

  String.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Dial</string>
    <string name="the_number">电话号码</string>
    <string name="dial">拨号</string>

</resources>

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

验证此应用的方法:

1.start 两个  avd  5554  &   5556

2.将应用运行于5554中

3.在EditText中输入5556即可实现:5554拨通至5556