Android 拨号器的实现 [视频1]
Android自带了拨号功能和拨号器
这个是在一个视频里看到的 想写下来记录一下
下面放源代码
/hehe/res/layout/activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.hehe.MainActivity" > <!-- @+id/textView1 就理解为在R文件加一个id --> <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="请输入手机号码" android:textSize="19dp" /> <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1" android:layout_marginTop="20dp" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/editText1" android:layout_marginTop="30dp" android:text="拨号此号码" /> </RelativeLayout>
/hehe/src/com/example/hehe/MainActivity.java
package com.example.hehe; 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.Toast; /** * 手机 打电话的功能 主要是 意图 startActivity * * */ /** * 这个 Activity 是第一次被启动的 activity * */ public class MainActivity extends Activity { private EditText et_number; /** * Called when the activity is starting 当 activity 启动就会执行 onCreate 方法 * */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /** * Set the activity content from a layout resource. 设置 activity 的内容 * 内容来源于布局 加载一个布局 * */ setContentView(R.layout.activity_main); // [1] 找到我们关心的控件 editText button et_number = (EditText) findViewById(R.id.editText1); // [2] 找到按钮 Button btn_call = (Button) findViewById(R.id.button1); // [3] 给 Button 按钮设置一个点击事件 btn_call.setOnClickListener(new MyClickListener()); } private class MyClickListener implements OnClickListener { // Called when a view has been clicked. 当按钮被点击的时候调用 public void onClick(View v) { // [4] 获取 editText 文本内容 String number = et_number.getText().toString().trim(); if ("".equals(number)) { /** * context 上下文 */ Toast.makeText(MainActivity.this, "拨打的电话号码不能为空", Toast.LENGTH_LONG).show(); return; } // [5] 进行拨打电话 意图 Intent Intent intent = new Intent(); // 创建一个意图对象 打 猫 狗 代码 电话 // [5.1] 设置动作 intent.setAction(Intent.ACTION_CALL); // [5.2] 设置要拨打是数据 /** * uri: 统一资源标示符 自己定义的路径 想代表什么就代表说明 url: 统一资源定位符 www.baidu.com */ intent.setData(Uri.parse("tel:" + number)); // [6] 开启意图 startActivity(intent); } } }
里面的注释也是视频里的 感觉说的蛮好
/hehe/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.hehe" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="19" /> <!-- 代表当前应用 --> <!-- @ 可以理解为 R.java文件也就是 res 文件(资源文件) android:icon="@drawable/a" res 文件 主 drawable 下的 a 图片 (换hehe的应用图片 如:打开QQ的图标) android:label="@string/app_name" 应用程序最上面的标题 android:theme="@style/AppTheme" 主题 --> <uses-permission android:name="android.permission.CALL_PHONE"/> <application android:allowBackup="true" android:icon="@drawable/a" android:label="@string/app_name" android:theme="@style/AppTheme" > <!-- activity 理解为 第一次被启用的 android:name=".MainActivity" 指的是第一次启用的 MainActivity --> <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /><!-- main 主要的入口 --> <category android:name="android.intent.category.LAUNCHER" /><!-- launcher 启动 --> </intent-filter> </activity> </application> </manifest>
这个是资源清单文件
加一下<uses-permission android:name="android.permission.CALL_PHONE"/>权限
好,至此一个简单的Android拨号器就完成了,功能虽小,但是使用的地方还是很多的.