android模擬打電話的應用小程序

android模擬打電話的應用小程序

一   介紹

         在android中已經有打電話的效果瞭,我們為瞭更好的瞭解android,所以來編寫一個簡單的android,來模擬。

二   代碼詳解

1.  首先我們來編寫視圖界面,視圖界面我們以一個最簡單的方式來體現,如圖:

 

 

可視化的界面我們是通過layout中的main.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:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="@string/tipMsg" />

 

    <EditText

        android:id="@+id/phone"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:ems="10" >

 

        <requestFocus />

    </EditText>

 

 

    <Button

        android:id="@+id/callBtn"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="@string/btn" />

 

</LinearLayout>

 

以上的文字是通過values中的strings.xml中引入的:

<string name="app_name">Phone</string>

    <string name="tipMsg">請輸入正確的電話號碼</string>

<string name="btn">撥號</string>

 

註:@代表的是引用,+代碼的是沒有的話創建一個

 

在執行main.xml文件的時候是先尋找R.java中的內部類,再去尋找所對應的values下的strings.xml文件,在strints.xml中的文件在創建之後,就會在R.java中自動生成。

 

2. 點擊撥號的時候觸發事件

這就需要在src下的Activity中獲取按鈕的組件並獲取文件框中輸入的信息。

package cn.csdn.hr.android.phone;

 

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;

 

publicclass PhoneActivity extends Activity {

    @Override

    publicvoid onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       // 設置顯示的視圖

       setContentView(R.layout.main);

 

       // 獲取當前這個實體

       Button callBtn = (Button) findViewById(R.id.callBtn);

 

       //所用的是匿名類

       callBtn.setOnClickListener(new OnClickListener() {

 

           publicvoid onClick(View v) {

              // 觸發按鈕後的操作

 

              // 獲取文本組件 www.aiwalls.com

              EditText phone = (EditText) findViewById(R.id.phone);

 

              // 意圖,告訴組件在撥號的時候要幹什麼

              Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"

                     + phone.getText()));

 

              // 開始處理意圖

              PhoneActivity.this.startActivity(intent);

 

              // 給打電話賦的權限,在androidManfest中設置權限

           }

       });

    }

}

  在最後一步給打電話賦權限,要打開AndroidManifest.xml,切換到Permissions視圖,點擊Add添加的按鈕,出現一下的界面,選中User Permission:
 
然後再右邊Name中的下拉列表框中選擇android.permission.CALL_PHONE,最終的結果為:
 
這樣,一個簡單的電話通信就完成瞭。我們可以打開兩個模擬機來測試,比如說一個模擬機名字為5554,另一個為5556,那麼我們可以在5554的文本框中輸入5556,即可測試
註:
獲取文本信息   phone.getText()
 

摘自 韓曉爽的專欄
 

發佈留言