前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个简单的拨号器 附源码

一个简单的拨号器 附源码

作者头像
软件小生活
发布2021-08-16 15:48:53
6920
发布2021-08-16 15:48:53
举报
文章被收录于专栏:软件小生活

开发一个简单的拨号器。 开发一个应用的步骤: 小应用的步骤: 1.设计界面 2.activity 3.设计业务层 如果程序比较简单就将代码直接写在activity中 大应用的步骤 1.设计业务层。用android junit测试完成 2.设计界面 3.设计activtiy 我们按照一个简单的应用来开发; 1.设计界面 三个元素,标题,文本输入框,按钮 main.xml 这里面的标签前面的文章都介绍过,这里就不再介绍了;

代码语言:javascript
复制
<?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/hello"

    />
    <EditText
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/phoneNumber"
    />
    <Button
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/buttonText"
    android:id="@+id/button"
    />
</LinearLayout>


String.xml


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">请输入手机号码</string>
    <string name="app_name">完美拨号器</string>
<string name="buttonText">拨打这个号码</string>
</resources>

R.java

代码语言:javascript
复制
/* 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 cn.perfect.call;

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 button=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=0x7f040001;
        public static final int buttonText=0x7f040002;
        public static final int hello=0x7f040000;
    }
}

2.设计activtiy

代码语言:javascript
复制
package cn.perfect.call;

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;

public class PhoneActivity extends Activity {
  /**
   * 将从控件中得到值声明成全局变量,这样每次都只查询一次就行
   * 第二次就直接从这个全局变量中拿就可以了 这样提高效率
   */
  private EditText phoneEditText;
  private Button   callButton;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //得到文本框的内容
        phoneEditText =(EditText) this.findViewById(R.id.phoneNumber);
        callButton =(Button) this.findViewById(R.id.button);
        /**
         * 给按钮添加一个点击事件 onclicklistenter 的参数是OnClickListener是一个接口
         * 我们要这个接口的一个实现类,要得到这个接口的实现类的方法有两种,一个是创建一个类
         * 实现这个接口,第二种方法就是匿名内部类
         */
        callButton.setOnClickListener(new OnClickListener ()
        {

      public void onClick(View v) {
        // TODO Auto-generated method stub
        String numberString = phoneEditText.getText().toString();
        /**
         * 接下来的操作就是将这个电话号码播出去
         * 要调用android的方法来实现,为了保证安全,在使用电话拨号服务的时候要声明电话
         * 拨号权限,这个权限的功能是在安装这个应用的时候,如果你涉及到了拨号服务,就会
         * 提示用户:“这个应用使用了电话拨号服务 你是否还要安装” 
         * 添加这个拨号权限是在功能文件AndroidManifest.xml中添加,<uses-permission android:name="android.permission.CALL_PHONE"/>
         * 那么android还有什么权限设置呢 在这个文件中查看
         * android-sdk-windows\docs\reference\android\Manifest.permission.html
         * 发短信 接受短信 刻录语音都要加权限 
         */

        //现在添加了拨号权限 然后我们开始拨号 拨号要创建一个名为意图的对象
        /**
         * Intent (动作,数据) 两个参数
         * Intent就是将动作和参数交给android 然后让他判断这个动作应该使用什么来执行
         * "tel:"+numberString 这个参数的格式是android规定的;
         */
        Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+numberString));
        /**
         * 意图对象生成后 要传递给操作系统 执行这个意图
         * 内部类访问外部类的实例的方法
         */
        PhoneActivity.this.startActivity(intent);
      }

        });

    }
}

AndroidManifest.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="cn.perfect.call"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/xx" 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>

3.由于我们将业务写在了activity里所以没有写业务层 4.运行项目

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件小生活 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档