热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

Android开发之电话拨号器和短信发送器实现方法

这篇文章主要介绍了Android开发之电话拨号器和短信发送器实现方法,结合实例形式较为详细的分析了Android电话拨号器和短信发送器的具体原理与实现步骤,需要的朋友可以参考下

本文实例讲述了Android开发之电话拨号器和短信发送器实现方法。分享给大家供大家参考,具体如下:

电话拨号器

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

步骤:

1.界面布局
2.编写Activity
3.使用意图过滤器激活电话拨号功能
4.添加电话服务权限(用手机的电话服务,要在清单文件AndroidManifest.xml中添加电话服务权限)

如图所示这三个控件是垂直摆放的,所以要使用线性布局来搁置显示控件

效果图:

界面布局:

<&#63;xml version="1.0" encoding="utf-8"&#63;> 
 
   
   
    
   
   
  

Activity:

package cn.test.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 MainActivity extends Activity { 
  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    //根据控件的id查找到按钮控件 
    Button button =(Button)this.findViewById(R.id.button); 
    button.setOnClickListener(new ButtonClickLister());  //点击事件的处理对象 
  } 
  //监听对象实现拨打功能 
  private class ButtonClickLister implements View.OnClickListener{ 
    public void onClick(View v){ 
      EditText mobileText=(EditText)findViewById(R.id.moblie); 
      String moblie=mobileText.getText().toString(); //获取到用户输入的时间 
      Intent intent =new Intent(); 
      intent.setAction("android.intent.action.CALL"); 
      intent.setData(Uri.parse("tel:"+moblie)); 
      //根据意图过滤器参数激活电话拨号功能 
      startActivity(intent); 
    } 
  } 
}

添加电话服务权限:

<&#63;xml version="1.0" encoding="utf-8"&#63;> 
 
   略.... 
   
   
   


短信发送器

短信发送器和电话拨号器步骤差不多,需要注意的是当获取到短信内容时,如果短信内容非常多需要对短信内容进行拆分,拆分后存到集合里,对短信内容多条发送

效果图:

界面布局:

<&#63;xml version="1.0" encoding="utf-8"&#63;> 
 
   
   
   
   
   
   
  

Activity:

package cn.test.sms; 
import java.util.ArrayList; 
import android.app.Activity; 
import android.os.Bundle; 
import android.telephony.SmsManager; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 
public class MainActivity extends Activity { 
  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Button button =(Button)this.findViewById(R.id.button); 
    button.setOnClickListener(new ButtonClickLister());  //点击事件的处理对象 
  } 
  //监听对象实现拨打功能 
  private class ButtonClickLister implements View.OnClickListener{ 
    public void onClick(View v){ 
      EditText moblieText=(EditText)findViewById(R.id.moblie); 
      EditText cOntentText=(EditText)findViewById(R.id.content); 
      String moble =moblieText.getText().toString();//获取电话号 
      String cOntent=contentText.getText().toString();//获取短信内容 
      SmsManager smsManager=SmsManager.getDefault();//获得短信管理器 
      ArrayList texts=smsManager.divideMessage(content);//对短信内容进行拆分 
      for(String text:texts){ 
        smsManager.sendTextMessage(moble, null, text, null, null);  //短信发送 
      } 
        //采用吐西方式提示用户发送成功 
      Toast.makeText(getApplicationContext(), R.string.success, 1).show(); 
    } 
  } 
}

添加短信服务权限:

<&#63;xml version="1.0" encoding="utf-8"&#63;> 
 
   略.... 
   
   
   
 

希望本文所述对大家Android程序设计有所帮助。


推荐阅读
  • 本文探讨了在Android应用中实现动态滚动文本显示控件的优化方法。通过详细分析焦点管理机制,特别是通过设置返回值为`true`来确保焦点不会被其他控件抢占,从而提升滚动文本的流畅性和用户体验。具体实现中,对`MarqueeText.java`进行了代码层面的优化,增强了控件的稳定性和兼容性。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 深入解析Gradle中的Project核心组件
    在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
  • 为了优化直播应用底部聊天框的弹出机制,确保在不同设备上的布局稳定性和兼容性,特别是在配备虚拟按键的设备上,我们对用户交互流程进行了调整。首次打开应用时,需先点击首个输入框以准确获取键盘高度,避免直接点击第二个输入框导致的整体布局挤压问题。此优化通过调整 `activity_main.xml` 布局文件实现,确保了更好的用户体验和界面适配。 ... [详细]
  • 在Spring框架中,基于Schema的异常通知与环绕通知的实现方法具有重要的实践价值。首先,对于异常通知,需要创建一个实现ThrowsAdvice接口的通知类。尽管ThrowsAdvice接口本身不包含任何方法,但开发者需自定义方法来处理异常情况。此外,环绕通知则通过实现MethodInterceptor接口来实现,允许在方法调用前后执行特定逻辑,从而增强功能或进行必要的控制。这两种通知机制的结合使用,能够有效提升应用程序的健壮性和灵活性。 ... [详细]
  • SQLmap自动化注入工具命令详解(第28-29天 实战演练)
    SQL注入工具如SQLMap等在网络安全测试中广泛应用。SQLMap是一款开源的自动化SQL注入工具,支持12种不同的数据库,具体支持的数据库类型可在其插件目录中查看。作为当前最强大的注入工具之一,SQLMap在实际应用中具有极高的效率和准确性。 ... [详细]
  • 深入解析 Android Drawable:第六阶段进阶指南 ... [详细]
  • 如何构建基于Spring MVC框架的Java Web应用项目
    在构建基于Spring MVC框架的Java Web应用项目时,首先应创建一个新的动态Web项目。接着,需将必要的JAR包导入至WebContent/WEB-INF/lib目录下,确保包括Spring核心库及相关依赖。如遇缺失的JAR包,可向社区求助或通过Maven等工具自动下载。正确配置后,即可开始搭建应用结构与功能模块。 ... [详细]
  • 本文深入探讨了 HTML 中的 `margin` 属性,详细解析了其基本特性和应用场景。文章不仅介绍了 `margin` 的基本概念,还重点讨论了垂直外边距合并现象,并分析了 `margin` 在块级元素与内联元素中的不同表现。通过实例和代码示例,帮助读者全面理解 `margin` 的使用技巧和常见问题。 ... [详细]
  • 深入解析Spring Boot自动配置机制及其核心原理
    Spring Boot 的自动配置机制是其核心特性之一,旨在简化开发过程并提高效率。本文将深入探讨这一机制的工作原理,解释其如何通过智能化的类路径扫描和条件注解实现自动装配。通过对 Spring Boot 自动配置的详细解析,读者将能够更好地理解和应用这一强大功能,从而在实际项目中更加高效地利用 Spring Boot。 ... [详细]
  • 从 Java 过渡到 Ruby,不仅是一次编程语言的转换,更是一段技术进阶的旅程。本文将深入探讨两种语言在语法、生态系统和开发模式上的差异,帮助开发者顺利实现转型,并在新的环境中高效地编写高质量代码。 ... [详细]
  • 探讨Java中利用CXF与JAXRS实现Web服务请求及会话管理的常见问题与解决方案 ... [详细]
  • voc生成xml 代码
    目录 lxmlwindows安装 读取示例 可视化 生成示例 上面是代码,下面有调用示例 api调用代码,其实只有几行:这个生成代码也很简 ... [详细]
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • 探索JavaScript倒计时功能的三种高效实现方法及代码示例 ... [详细]
author-avatar
志信俊霖2542
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有