android手机拨号器,以及短信发送器的简单实现

其中本例中的手机拨号器并不是我们自己完全去实现,而是通过intent让android系统自带的拨号器去实现拨号的功能,

一、电话拨号器

第一步:对资源文件夹values中的string.xml文件进行配置,(在应用程序中需用到的字符串资源如button按钮上的名字、TextView中的内容都在此定义,然后再布局文件中可以进行使用)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, PhoneActivity!</string>
    <string name="app_name">电话拨号器</string>
    <string name="textview_name">请输入电话号码</string>
    <string name="button_name">拨号</string>
</resources>

第二步:对资源中布局文件夹下的main.xml文件进行配置,该文件控制Activity的布局

<?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/textview_name"
    />
    <EditText 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
   android:id="@+id/edittext_id"
    />
    <Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/button_name"
   android:id="@+id/button_id"
    />
</LinearLayout>

第三步:实现包含业务逻辑的具体的Activity

package com.heima.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 {
 EditText editText;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        editText = (EditText) this.findViewById(R.id.edittext_id);
        Button button = (Button) this.findViewById(R.id.button_id);
        button.setOnClickListener(new PhoneListener());
    }
   
    private final class PhoneListener implements View.OnClickListener{
     /*
      *<action android:name="android.intent.action.CALL" />
      *<category android:name="android.intent.category.DEFAULT" />
      *<data android:scheme="tel" />
      */
  @Override
  public void onClick(View v) {
   String telephone = editText.getText().toString();
   Intent intent = new Intent();
   intent.setAction("android.intent.action.CALL");
   intent.setData(Uri.parse("tel:"+telephone));
   startActivity(intent);// 隐式注册android.intent.category.DEFAULT,因此无需显示调用intent.setAction("android.intent.action.CALL");
  }
     
    }
}

二、短信发送器

第一步:配置资源文件string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, SMSActivity!</string>
    <string name="app_name">短信发送器</string>
    <string name="telephone_number">请输入手机号码</string>
    <string name="sms_content">请输入短信内容</string>
    <string name="buttonname">发送短信</string>
    <string name="show">发送成功</string>
</resources>

第二步:配置布局文件

<?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/telephone_number"
    />
   
    <EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/phone_id"
    />
  
    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/sms_content"
    />
   
    <EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:maxLines="3"
    android:id="@+id/sms_id"
    />
   
    <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/button_id"
    />
</LinearLayout>

第三步:实现Activity

package com.heima.sms;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.telephony.gsm.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class SMSActivity extends Activity {
 EditText phone;
 EditText sms;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        phone = (EditText) this.findViewById(R.id.phone_id);
        sms = (EditText) this.findViewById(R.id.sms_id);
        Button button = (Button) this.findViewById(R.id.button_id);
        button.setOnClickListener(new SMSListener());
    }
   
    private final class SMSListener implements View.OnClickListener{

@Override
  public void onClick(View v) {
   String phoneNumber = phone.getText().toString();
   String smscontent = sms.getText().toString();
   //得到短信管理器
   SmsManager manager = SmsManager.getDefault();
   //divideMessage方法用于分割内容过长的短信
   ArrayList<String> contents = manager.divideMessage(smscontent);
   for(String content:contents){
    /* 各个参数的含义
     * destinationAddress 短信接收者号码、
     * scAddress 短信转发中心号码,一般为默认为null即可
     * text 短信内容sentIntent 不太清楚,暂时设为null   
     * deliveryIntent 不太清楚,暂时设为null
     */
    manager.sendTextMessage(phoneNumber, null, content, null, null);
   }
   //不要忘记写show方法,否则没有信息发送状态提示,Toast.LENGTH_LONG标示显示时间稍长
   Toast.makeText(getApplicationContext(), R.string.show, Toast.LENGTH_LONG).show();
  }
     
     
    }
}

特别注意在短信发送器的例子中一定要注意在AndroidManifest.xml文件中配置属性,
<uses-permission android:name="android.permission.SEND_SMS"/>
否则老是报程序异常终止异常

android 之手机拨号器,以及短信发送器的简单实现相关推荐

  1. Android实现电话拨号器和短信发送器

    电话拨号器 实现原理:用户输入电话号码,当点击拨打的时候,由监听对象捕获,监听对象通过文本控件获取到用户输入的电话号码,由于系统已经实现了电话拨号功能,所以我们只需要调用这个功能就可以了. 步骤: 1 ...

  2. Android两个小Demo之电话拨号器和短信发送器

    两个简单的小案列 <1>电话拨号器 实现一个电话拨号器,我们分为简单的三步走: 1.在layout中写好布局 2.在MainActivity中写出对应的事件 3.在Manifest中配置好 ...

  3. Android模拟手机拨号器

    一直以来对手机之间的通话都很好奇,拨打号码就能实现两个手机连同,今天就可以实现这个小功能,不然还怎么说自己是研究Android的手机的呢? Android的手机模拟器自带有拨号功能,我们先试试自带的拨 ...

  4. 收到银行短信你正在使用Android设备,手机收到扣费短信,无故被扣钱?小心自动订阅的大坑!...

    原标题:手机收到扣费短信,无故被扣钱?小心自动订阅的大坑! 近日,全国数家音视频网站被约谈,要求整改取消默认自动续费条约等. 现在的付费方式越来越多,也越来越方便,而后衍生的自动订阅付费更是让人防不胜 ...

  5. java 添加手机联系人_Android编程实现读取手机联系人、拨号、发送短信及长按菜单操作方法实例小结...

    本文实例讲述了Android编程实现读取手机联系人.拨号.发送短信及长按菜单操作方法.分享给大家供大家参考,具体如下: 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下 ...

  6. java 获取手机联系人_Android 读取手机联系人、拨号、发送短信及长按菜单的操作...

    本示例实现了读取手机联系人,拨号.发送短信及长按出现菜单选项的操作↓ 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下↓ a, main.xml 程序运行的主界面,主要 ...

  7. android 4.0版本手机接受多条短信分析

    手机接受多条短信分析 1. 空闲中整理下笔记,先上android 4.0 短信接收多条异常问题处理,再写 android 4.5 的.  实例:android4.0版本以及以前版本 [信息]对比机发送 ...

  8. 【h5移动端页面调起手机sms批量发送短信,兼容ios和android】

    移动端h5页面调起手机发送短信功能,实现批量发送生日祝福模板,苹果和安卓的兼容写法不一样. 先判断是ios还是android,拼接的写法不一样 android是sms:188XXXXXXXX,134X ...

  9. android手机拨号器实现

    总共分为4个部分:string值,Layout布局设计,MainActivity代码编写,给项目添加使用授权. 1. string值 Phone-->res-->values-->s ...

  10. 手机网站实现一键拨号及html5短信发送功能JS代码(微信适用)

    手机网站实现一键拨号及html5短信发送功能JS代码(微信适用) 来源:本站原创    作者:温州中网网络营销机构    发布时间:2014-1-10 10:45:44    点击数:3069 微信微 ...

最新文章

  1. 2020年中国智慧城市发展值得关注的技术
  2. php普通索引和唯一索引,MySQL中普通索引和唯一索引的区别详解
  3. [转] 深入浅出 妙用Javascript中apply、call、bind
  4. 开始折腾iphone cdma 恢复,降级,刷机,越狱,手编,写号
  5. spring boot aop 记录方法执行时间
  6. C++:38---final关键字和禁止类继承
  7. 路由复用器--gorilla/mux
  8. python在数据分析的应用_Python运用于数据分析的简单教程
  9. webservers ajax,jQuery AJax调用asp.net webservers的实现代码
  10. java floormod_Java中 % 与Math.floorMod() 区别详解
  11. 面试必掌握的redis的问题
  12. ASP.NET MVC Flash 在线拍照
  13. kubernetes部署分布式存储longhorn
  14. 三年半 Java 后端鹅厂面试经历
  15. python读取csv文件路径设置_python读取csv文件
  16. Overture教程之五线谱介绍
  17. 抖音粉丝快速增长的有效方法 抖音怎么增加1000粉丝
  18. ASR自动语音识别技术
  19. 服务器更新操作系统补丁,windows 10通过第三方landesk补丁服务器对系统进行了更新操作...
  20. java 两集合根据某字段 过滤掉相同的数据 , 集合整合数据

热门文章

  1. 关于node中的板块问题
  2. JS规则 自加一,自减一 ( ++和- -) 【mynum = mynum + 1;//等同于mynum++;】
  3. osx mount nfs/smb
  4. ASP.NET MVC 分部视图
  5. 在 Mac OS X 下启用超级帐户(root)
  6. Eclipse注释快捷键、如何生成API以及可能遇到的问题解决
  7. Linux操作系统 和 Windows操作系统 的区别
  8. Centos7 网络报错Job for iptables.service failed because the control process exited with error code....
  9. Android 程序中获取一个反向 Shell
  10. 多语言样式容器内容超出父级宽度不换行显示