Android編程簡單實現(xiàn)撥號器功能的方法
本文實例講述了Android編程簡單實現(xiàn)撥號器功能的方法。分享給大家供大家參考,具體如下:
學(xué)習(xí)Android已經(jīng)有2天時間了,沒學(xué)習(xí)的時候覺得android可能很枯燥,但是學(xué)過之后我發(fā)覺其實這個比什么javaweb好玩多了。學(xué)習(xí)android可以見到一些很有趣的東西,這里呢也建議學(xué)習(xí)javaME的人不要在煎熬了,學(xué)習(xí)android吧。在寫程序之前也需要知道android的工作原理
1.獲取組件清單
2.登記或注冊組件
3.將組件封裝成意圖
4.把意圖交給意圖處理器進(jìn)行處理
5.把界面顯示給用戶
看過網(wǎng)上android的開發(fā)流程,好多人都說可以把界面和activity并行開發(fā),因為android也是遵循mvc設(shè)計模式,也就是說android也可有自己的業(yè)務(wù)層DAO。由于android發(fā)展歷史比較短,目前的分工還不是很明確,對于界面和后臺可以選擇其中一個作為自己的發(fā)展方向,對于android的任何一塊來說薪水都比較高。廢話就不多說了,來一步一步的實現(xiàn)功能吧。
1.編寫“文字”的配置文件,默認(rèn)的配置文件是strings.xml,這里也可以重新寫一個配置文件,格式要保持一致就來寫這個配置文件(mystring.xml)吧
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="tip">輸入號碼</string> <string name="bottonname">撥打</string> </resources>
2.編寫控件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent"> <!-- 線性布局 -->
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/tip" />
<EditText android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/phonenumber"/> <!-- 顯示一個文本框 id為phonenumber-->
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/bottonname"
android:id="@+id/botton"
/> <!-- 顯示一個按鈕 -->
</LinearLayout>
為了讓大家看的更清楚,我把R文件的內(nèi)容也給大家
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package org.lxh.phone;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class id {
public static final int botton=0x7f050001;
public static final int phonenumber=0x7f050000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040003;
public static final int bottonname=0x7f040001;
public static final int hello=0x7f040002;
public static final int tip=0x7f040000;
}
}
3.編寫activity
package org.lxh.phone;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class PhoneActivity extends Activity {
private EditText edit;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
edit=(EditText)this.findViewById(R.id.phonenumber); //通過id取得文本輸入框
Button but=(Button)this.findViewById(R.id.botton); //通過id取得按鈕
but.setOnClickListener(new MyListener()); //給按鈕添加監(jiān)聽器
}
public final class MyListener implements View.OnClickListener{ //自定義的監(jiān)聽器
public void onClick(View v) {
//實例化一個意圖(動作),用來撥打電話
Intent intent=new Intent("android.intent.action.CALL",Uri.parse("tel:"+edit.getText().toString()));
startActivity(intent); //封裝一個意圖
}
}
}
上面是內(nèi)部類的寫法,也可以使用下面的寫法
package org.lxh.activity;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class CallPhoneActivity extends Activity {
private EditText edittext;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//取得輸入框和按鈕
edittext=(EditText)this.findViewById(R.id.phonenum);
Button but=(Button)this.findViewById(R.id.button);
but.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String number=edittext.getText().toString();
//封裝一個意圖,用來撥打電話
Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));
startActivity(intent);
}
});
}
}
開發(fā)的時候要注意Uri.parse不能少,tel:也不能少,少了就會出錯
這里要實現(xiàn)這個功能,首先要來看一下xml
<activity android:name="OutgoingCallBroadcaster"
android:permission="android.permission.CALL_PHONE"
android:theme="@android:style/Theme.NoDisplay"
android:configChanges="orientation|keyboardHidden">
<!-- CALL action intent filters, for the various ways
of initiating an outgoing call. -->
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="voicemail" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/phone" />
<data android:mimeType="vnd.android.cursor.item/phone_v2" />
<data android:mimeType="vnd.android.cursor.item/person" />
</intent-filter>
</activity>
這里只需要看第一個filter,這里只需使用2條,那個默認(rèn)的不用我們?nèi)ス埽硗膺@個也是需要獲得打電話的許可的,所以在組件清單里要加一點東西,如下所示
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.lxh.phone"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".PhoneActivity"
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>
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
</manifest>
準(zhǔn)備工作差不多做好了,來測試一下吧,這里為了測試方便,我弄了2個虛擬手機

電話打通了

這個比較好玩吧,至于那個應(yīng)用圖標(biāo)自己可以換成喜歡的,我就不改了
現(xiàn)在把那個strings.xml配置文件給大家
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, PhoneActivity!</string> <string name="app_name">我的手機撥號器</string> </resources>
OK了,程序?qū)懞昧恕?/p>
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》、《Android資源操作技巧匯總》、《Android文件操作技巧匯總》、《Android開發(fā)入門與進(jìn)階教程》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
相關(guān)文章
Android利用SurfaceView實現(xiàn)下雨的天氣動畫效果
這篇文章主要介紹了Android利用SurfaceView實現(xiàn)下雨天氣效果的相關(guān)資料,文中詳細(xì)介紹 SurfaceView 和 View 的區(qū)別,以及一些需要使用到 SurfaceView 的場景。需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03
解決video標(biāo)簽在安卓webview下無法自動播放問題
這篇文章主要介紹了video標(biāo)簽在安卓webview下無法自動播放問題的解決方法 ,需要的朋友可以參考下2014-03-03
Android實現(xiàn)Bitmap位圖旋轉(zhuǎn)效果
這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)Bitmap位圖旋轉(zhuǎn)效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04
解決Android Studio 出現(xiàn)“Cannot resolve symbo
今天在調(diào)試的時候,Android Studio報了一個莫名其妙的錯誤Cannot resolve symbol'R'讓人不知所措,因為這東西根本不歸我管啊,怎么會出現(xiàn) Cannot resolve symbol 這種錯誤呢?下面給大家分享Android Studio 出現(xiàn)“Cannot resolve symbol”解決方案,需要的朋友可以參考下2023-03-03
android SectorMenuView底部導(dǎo)航扇形菜單的實現(xiàn)代碼
這篇文章主要介紹了android SectorMenuView底部導(dǎo)航扇形菜單的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02
Android中recyclerView底部添加透明漸變效果
這篇文章主要給大家介紹了關(guān)于Android中recyclerView如何實現(xiàn)底部添加透明漸變效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2018-04-04
Android Studio 1.2版安裝設(shè)置圖文教程
這篇文章主要介紹了Android Studio 1.2版安裝設(shè)置圖文教程,本文詳細(xì)講解了下載、安裝Android Studio 1.2教程,以及常用設(shè)置詳細(xì)圖文教程,需要的朋友可以參考下2015-05-05

