通话和短信
通信和短信功能依托于底层硬件和驱动的支持,不同设备有不同标准的基带BaseBand硬件。在底层之上,Android抽象了通信接口层RIL,由通信守护服务和设备厂商的通信类库组成。设备启动时,守护服务会加载通信类库,并监听特定的端口启动通话相关的Socket服务。
通信接口联通了上层类库和底层设备。用户需要拨号等通信请求时,上层类库会将请求转换成特定指令,通过Socket连接并发送至守护服务,通信守护服务调用通信类库,通过底层硬件将请求发送出去。
在Android的框架层,通话和短信功能定义在telephony包,负责建立于RIL服务的连接,并将用户的请求转换成指令和数据进行传输。不同的通话协议中的一些特殊的功能都由各自的Java包提供,如gsm提供获取GSM协议相关的参数。
在应用层,处理通话请求的通话应用Phone Application是Android中最为特殊的应用。和框架耦合密切,负责所有通话请求相关的处理。系统提供的通话应用不能被第三方取代,一次保证通话的可靠。
通话的处理
telephonyManager查看通话状态、SIM卡信息
telephonyManager.getPhoneType通话网络类型
telephonyManager.getCallState通话状态
使用telephonyManager.listen函数,注册telephonyManager.phoneStateListener适时监听通话状态的变更,适时查询来电显示。
出于安全考虑,没有将拨号呼叫、接听电话的接口暴露,应用中需要打电话,需要Intent实现。
StartActivity(new Intent(Intent.ACTION_DIAL, new URI.parse(“tel:XX”)))
或
StartActivity(new Intent(Intent.ACTION_CALL, new URI.parse(“tel:XX”)))
短信的发送和接受
SmsManager可以控制发送短信或彩信。
//构造回掉事件,短信发送结束后,会发出对应的Intent请求
Intent intent = new Intent(“com.sample.sms_sent”);
Intent.putExtra(“sms_id”, GenerateSmsId());
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
//发送文本短信
SmsManager smsManager = SmsManager .getDefault();
smsManager.sendTextMessage(phone_number, null, text_content, pendingIntent,null);
PendingIntent是异步Intent对象,当短信发送完成后,会触发预设的广播事件,通过监听该广播事件,可获知短信发送结果。
相关推荐
在Android平台上,获取短信和通话记录信息是开发者常用于实现各种功能,如日志记录、安全监控或备份应用的关键操作。下面将详细讲解如何在Android系统中获取这些数据。 一、获取短信信息 1. 权限声明: 首先,为了...
在Android操作系统中,通话、通讯录、短信和彩信是...以上是关于Android通话、通讯录、短信和彩信的基础知识和一个可能的`Contact_Demo`应用概述。开发实际应用时,还需要考虑权限管理、UI设计、异常处理等多方面因素。
这篇教程将深入探讨如何在Android应用中获取联系人信息、通话记录以及短信消息。首先,我们来了解一下基本概念。 1. **获取联系人信息**: Android提供了一套完整的API来访问和操作联系人数据。主要涉及`...
在Android操作系统中,通话和短信黑白名单功能是一个实用的安全与隐私管理工具,它允许用户根据自己的需求筛选来电和短信。这个功能特别适用于防止不必要的骚扰电话和垃圾短信,为用户提供了一个定制化通信环境的...
在Android平台上,通话记录是手机系统中不可或缺的一部分,它允许用户查看、管理他们的通话历史,包括未接电话、已接电话和已拨电话。这个"android项目通话记录源代码"正是针对这一需求提供了一个完整的解决方案。...
这个“Android Studio 3.2 读取通话记录源码”项目提供了一种方法来获取并展示用户的通话历史,包括联系人的姓名、电话号码、通话时间和通话类型。在Android Studio 3.2这个版本中,开发环境和API可能已经进行了优化...
在Android系统中,批量操作是常见的需求,尤其是在处理大量数据如联系人、短信和通话记录时。本项目提供了一个解决方案,允许用户批量插入这些信息,特别解决了自Android 4.4版本后插入短信的限制问题。这个解决方案...
在Android平台上,开发电话和短信监听程序涉及到一系列的API接口和权限管理。下面将详细讲解这一领域的关键知识点。 首先,监听电话状态需要使用到`TelephonyManager`类,它是Android提供的一个系统服务,用于获取...
Android 短信 联系人 通话记录总结
在Android平台上,开发人员可以利用系统的API来获取设备上的通话记录和短信记录。"hqthdx"是一个可能的项目或库名,它专注于这个特定的功能。在这个源码中,开发者可能已经实现了一套完整的解决方案,使得其他应用...
这个项目"Android之插入联系人+通话记录+短信记录"显然旨在实现自动化处理这些数据,使得应用程序能够自动插入和管理这些关键信息。 首先,让我们详细探讨如何在Android中操作联系人: 1. **联系人操作**: - **...
总结来说,"Android-SMS302短信或者来电转发到Email"项目涉及到的主要知识点有:Android权限管理、BroadcastReceiver的使用、ContentResolver操作短信和通话记录、SMTP邮件发送、以及用户体验优化。开发者需要掌握...
总之,这个项目展示了如何在Android中获取短信、通话记录和通讯录信息,并且通过JUnit进行了单元测试,以保证功能的正确性和稳定性。理解并掌握这些知识点对于进行Android应用开发是非常有益的。
[Android] 240204批量生成联系人,短信,通话记录的APK, APK介绍: https://blog.csdn.net/zengxx1989/article/details/136032027
1. **运行时权限**:Android 6.0及以上版本,对于`危险权限`(如访问联系人、短信、通话记录等),应用需要在运行时请求用户授权,而不是在安装时一次性获取。这需要开发者在代码中添加权限检查和请求逻辑。 2. **...
在Android Studio中进行安卓实验,查看系统短信是一个常见的学习任务,它涉及到Android系统的权限管理、内容提供者(Content Provider)以及SQLite数据库的操作。这个实验旨在帮助开发者了解如何访问和读取设备上的...
此外,对于拦截的通话和短信记录,应妥善处理,避免泄露用户信息。 六、安全性和法律问题 在某些国家和地区,非法拦截他人的电话和短信可能触犯法律。因此,开发者在设计此类应用时应确保其合法性,遵循相关法律...
本文将深入探讨如何在Android系统中进行通话录音,以及与之相关的技术知识点。 首先,了解Android系统的权限管理至关重要。在Android 6.0(API级别23)及以上版本,应用程序需要在运行时请求权限,包括`RECORD_...
在Android系统中,批量插入联系人、短信和通话记录是一项常见的数据管理任务,尤其是在开发过程中。自Android 4.4(KitKat)版本以来,由于安全性和隐私保护的加强,直接插入短信的操作变得更为复杂。本教程将详细...
在Android操作系统中,短信服务是核心功能之一,它允许用户收发信息并与他人进行通信。本文将深入探讨“android手机短信源码”这一主题,帮助Android开发者了解短信服务的内部工作原理,以及如何通过源码学习和改进...