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