Android ApiDemos示例解析(91):OS->SMS Messaging

RK3572-Android16-记录一次OTA升级失败解决方案 这里记录一次解决RK3576 Android16 OTA 用Recovery 升级失败的一次解决案例,将部分经验作为总结。本次OTA升级耗时了几天,最终是RK给出的解决方案,再加上经验来解决了其它部分问题新平台,高一点的Android版本,可能本身有bug,多请教平台来,不要蒙着干,干不出来的。 阅读详情

本例介绍Android收发短信,可以使用实际的设备,如果使用模拟器,可以启动两个模拟器来测试,可以参见Android简明开发教程二十:Broadcast Receiver 短信触发示例

本例还使用了TTS来读出收到的短信内容SmsReceivedDialog 中使用TextToSpeech 类来读出文字,TextToSpeech的用法可以参见Android ApiDemos示例解析(45):App->Text-To-Speech

本例如果Enable SMS broadcast receiver ,允许手机在收到短信时自动启动Acitivity(由SmsMessageReceiver触发SmsReceivedDialog),使用Broadcast receiver 也请参见Android简明开发教程二十:Broadcast Receiver 短信触发示例 ,不过本例是通过PackageManage动态注册Broadcast Receiver的方法:

final PackageManager pm = this.getPackageManager();
final ComponentName componentName
 = new ComponentName("com.example.android.apis",
 "com.example.android.apis.os.SmsMessageReceiver");
 
enableCheckBox
 .setChecked(pm.getComponentEnabledSetting(componentName) ==
 PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
 
enableCheckBox.setOnCheckedChangeListener(
 new OnCheckedChangeListener() {
 public void onCheckedChanged(CompoundButton buttonView,
 boolean isChecked) {
 Log.d(TAG, (isChecked ? "Enabling" : "Disabling")
 + " SMS receiver");
 
 pm.setComponentEnabledSetting(componentName,
 isChecked ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
 : PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
 PackageManager.DONT_KILL_APP);
 }
});

下面来介绍收发短信SMS,短信可以分两种一种为Text Message 主要给人来阅读,另外一种为Data Message (binary)可以发个另外的应用。

在Android在收发SMS是通过SmsManager来完成。 可以通过SmsManager.getDefault()来取得一个SmsManager对象

SmsManager sms = SmsManager.getDefault();

此外需要在AndroidManifest.xml在添加使用SMS对应的权限:

<uses-permission android:name=”android.permission.SEND_SMS” />
<uses-permission android:name=”android.permission.RECEIVE_SMS” />

简单的发送一条短信:

String sendTo="123456789";
String myMessage="Greetings from Guidebee";
smsManager.sendText(sendTo,null,myMessage,null,null);

public final void sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)

  • destinationAddress : 目标地址,手机号码
  • scAddress: 短信中心号码,为null时使用缺省短信中心号码。
  • text: 发送的信息内容。
  • sendIntent: 如果非空,可以来跟踪短信发送的状态:已发送,发送失败等。
  • deliveryIntent: 如果非空,但短信发送到目标时通知发送者。

本例定义了sendIntent来跟踪SMS发送的状态:

sms.sendTextMessage(recipient, null, message, PendingIntent.getBroadcast(
 SmsMessagingDemo.this, 0,
 new Intent(ACTION_SMS_SENT), 0), null);
 
...
// Register broadcast receivers for SMS sent and delivered intents
registerReceiver(new BroadcastReceiver() {
 @Override
 public void onReceive(Context context, Intent intent) {
 String message = null;
 boolean error = true;
 switch (getResultCode()) {
 case Activity.RESULT_OK:
 message = "Message sent!";
 error = false;
 break;
 case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
 message = "Error.";
 break;
 case SmsManager.RESULT_ERROR_NO_SERVICE:
 message = "Error: No service.";
 break;
 case SmsManager.RESULT_ERROR_NULL_PDU:
 message = "Error: Null PDU.";
 break;
 case SmsManager.RESULT_ERROR_RADIO_OFF:
 message = "Error: Radio off.";
 break;
 }
 
 recipientTextEdit.setEnabled(true);
 contentTextEdit.setEnabled(true);
 contentTextEdit.setText("");
 
 statusView.setText(message);
 statusView.setTextColor(error ? Color.RED : Color.GREEN);
 }
}, new IntentFilter(ACTION_SMS_SENT));
}

类似的

public final void sendDataMessage(String destinationAddress, String scAddress, short destinationPort, byte[] data, PendingIntent sentIntent, PendingIntent deliveryIntent)可以用来发送Data message.


 


 


 

 

Silvaco TCAD仿真例库——肖特基二极管正向特性(例子) 此示例演示了肖特基二极管正向特性的仿真。 展示了: 使用 Atlas 语法形成二极管结构 设置阳极的肖特基势垒高度 正向偏置阳极 代码 第一部分:描述设备 mesh(网格) electrodes locations(电极位置) doping distribution(掺杂分布) 这是位于结构左侧和右侧的,2维n型器件,具有重掺杂浮动 p 型保护环区域, (2D n-type device with heavily doped floating p-type guard ring regio. 阅读详情

相关推荐

PCIe Gen4 Switch芯片PM40028调试踩坑实录:从boot引脚设置到串口无输出的诡异问题

本文记录了PCIe Gen4 Switch芯片PM40028的实战调试过程,重点剖析了从boot引脚配置错误导致串口无输出,到使用逻辑分析仪定位并解决启动问题的完整排障思路。文章深入探讨了芯片启动流程、硬件信号测量方法,并总结了高速硬件调试的核心经验与系统性排查清单,为工程师解决类似PCIe Gen4设备调试难题提供实用指南。

i8j9k0l1的博客 251

Android SMS发送和接收(示例)

参考链接: http://www.cnblogs.com/xirihanlin/archive/2009/10/18/1585624.html 归纳关键点: 1. manifest.xml中必须指明访问SMS的权限         uses-permission android:name="android.permission.SEND_SMS">         uses-permi

BIT工匠 705

论文解读——YOLOv11(目标检测)

YOLOv11提供了多种型号和功能,以满足不同应用场景的需求。对象检测对象检测是YOLOv11的基本功能之一。在训练时,YOLOv11能够检测图像中的对象,并输出对象的边界框和类别信息。这一功能在自动驾驶、智能安防等领域具有广泛应用。图像分割图像分割是YOLOv11的另一个重要功能。与对象检测不同,图像分割不仅检测对象的边界框,还能够对图像中的对象进行像素级别的分割。这使得YOLOv11在医疗影像分析、工业制造等领域具有更高的应用价值。姿态检测姿态检测是YOLOv11的一个独特功能。

qq_38220914的博客 4457

Android的PendingIntent简单示例

PendingIntent是什么? pendingIntent的字面意义:待确定的意图,等待的意图。pendingIntent是一种特殊的Intent,pendingIntent执行的操作实质上是参数传进来的Intent的操作,使用pendingIntent的目的在于它所包含的Intent的操作的执行是需要满足某些条件的。 Intent和PendingIntent的区别: Intent是立刻执行的,而PendingIntent可以等到事件发生后触发,PendingIntent可以cancel。 I.

美奇软件开发工作室 2092

DisplayPort信号通道深度解析:从物理层到协议栈

DisplayPort(DP)是一种面向高速串行通信的数字显示接口标准,其核心在于嵌入式时钟、自适应均衡与链路训练三位一体的物理层架构。不同于HDMI依赖独立时钟的TMDS方案,DP通过差分主链路(Main Link)承载编码数据流,以8b/10b或128b/132b编码实现高带宽与强鲁棒性。该技术价值体现在多速率自适应、误码恢复能力及对PCB布线与阻抗控制的严苛要求,广泛应用于8K显示、工业视觉、GPU直连等高性能场景。本文聚焦DP信号通道的管脚级实现、三层协议解耦(物理层/数据链路层/事务层)及链路训练

weixin_34214500的博客 253

ExpressLRS(ELRS)接收机技术全景:从历史演进、技术底层到产业生态全解析——上

ExpressLRS(ELRS)是一种由全球开源社区驱动的双向射频遥控链路协议栈,其接收机作为核心终端,承担信号接收解调、遥控指令解析、飞控数据交互与遥测回传等关键功能。自2018年问世以来,ELRS凭借极致性能、低成本、开放生态和强兼容性,从航模DIY方案发展为消费级无人机领域的事实标准,并逐步渗透工业级场景。 ELRS接收机采用模块化分层架构,支持2.4GHz和900MHz双频段,通过LoRa、FLRC、FSK多调制模式实现低延迟与远距离平衡。其核心技术包括自适应跳频抗干扰、TDD双向链路和极简数据包。

bother3000的博客 303

国内值得关注的官方API集合

项目地址:https://github.com/marktony/Awesome_API 本页仅收集国内部分官方API,如需查看其他版本,请点击这里。 目录 笔记 出行 词典 电商 地图 电影 后端云 即时通讯 开发者网站 快递查询 旅游 社交 视频 天气 图片与图像处理 外卖 消息推送 音乐 云 语音识别 综合 笔记 为知笔记- 为...

weixin_30477797的博客 3840

【DRAM存储器二】Sense Amplifier

详述DRAM颗粒中感应放大器功能、电路结构、工作原理和操作波形

highman110的博客 7199

apicloud数据交互mcm模块

混合式开发app,apicloud能快速开发一个中小型甚至大型,功能复杂的app。界面使用html5,js搭建,服务器后端代码减少,调用api云端接口即可。今天浅谈apicloud数据交互模块mcm的简单使用。官方文档个人感觉写得真的很烂,演示的事例太少,刚入门的都不知道怎么使用一些api。并且社区和网上关于这方面的资料比较少,所以自己也是摸石头过河找到点经验和大家分享。      1.创建应用

分享不一样的技术,与你一起共同成长! 13万+

[Unity3D]水族馆游戏教程四

文章目录0.接上篇1.速度控制器2.修改FishAI3.修改后的效果4.总结 0.接上篇 上一篇,实现了鱼AI的随机游动、自动转向,并且学习了如何分析调试过程中遇到的报错。 本篇将继续优化鱼AI。 1.速度控制器 上一篇虽然实现了鱼的随机游动,但是可以看到,鱼在转向的时候,会显得很突然。因此先要解决这个问题。 我们的思路是,让鱼在刚转向的时候,速度由慢到快,等到游动到快要到达目标点的时候,速度减慢...

延澈左的专栏 1038

【扣子AI开发】如何开发一个图像生成智能体?

【扣子AI开发】如何开发一个图像生成智能体,从创建到发布

tl437002770的博客 2427

Android ApiDemos示例解析(90):OS->Sensors

在前面的例子 Android ApiDemos示例解析(61):Graphics-&gt;Compass 和例子Android ApiDemos示例解析(79):Graphics-&gt;SensorTest 涉及到了Sensors。 本例再集中介绍Android 中支持的Sensors用法。 SensorManager用于管理Android设备中的各种传感器,取的SensorManage...

mapdigit 144

LeRobot 入门教程(七)数据集

LeRobot Dataset v3.0 是机器人学习数据的标准化格式,支持多模态时间序列数据和视频的统一访问。该版本通过基于文件的存储(Parquet/MP4)、关联元数据和Hub原生流式处理等新特性,显著提升了性能并降低了存储开销。文档详细介绍了格式设计、安装使用、数据记录与加载方法,以及从v2.1迁移到v3.0的步骤,特别针对大型数据集(如DROID 1.0.1)的处理提供了SLURM集群移植方案。v3.0通过优化文件组织和元数据管理,实现了更快的加载速度、更高的内存效率和更好的可扩展性。

2506_90492529的博客 2054

【Android】getActionBar()为null的解决方法总结

前言在使用 ActionBar的时候,有时候会爆出空指针异常,这是因为应用没有获取到 ActionBar 导致的,而导致应用没有获取到 ActionBar 的原因比较多,所以我们下面就来总结一下 ActionBar 获取不到的错误原因。解决办法 检查你的应用是否设置了没有 ActionBar 的主题Theme,或者直接设置了 NoActionBar或NoTitleBar 属性,主要要检查这几点:检查

祝福的博客 3万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

apicloud关于mcm的简单应用

apicloud的mcm模块其实就是应用云端数据库完成一系列操作,说到云端数据,当然要先创建数据库,按照如下方式创建,当然,双击就可添加数据 之后就简单了,在项目的页面里写上这样的查询就ok了,其中appid,appkey都是来自appcloud官网数据 function test2() { var userId = 'userId'; var friendUs

张小竟 3317

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

具身智能 2026:启元人形机器人开发者生态的“安卓时刻”来了吗

一个贯穿全文的问题:人形机器人开发者生态,是否正从「封闭垂直」走向「开源平台化」?本文以开源底座的公开数据为标尺,盘点 SDK、URDF、仿真与技能分发的开放程度,并落回启元机器人的开源路径。所有关键数据均标注来源,文末附社区与学堂链接。

在北风吹起的时候加入我们的队伍 在秋雨到来的时候成为彼此的温暖 751

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

android-ad-cleaner:android免 Root 批量关闭系统开屏与营销推送

橘子,计算机视觉方向工程师,深耕 AIGC 与多媒体处理领域,专注技术实用化落地。本文为原创内容,转载请注明来源与作者。优快云 首发 | 版权所有 © 2026。

下载资源或查看教程前,请务必阅读置顶的《免责声明》 531

Android 14 SELinux策略深度解析

init 的全局公开约束(如 neverallow init execute_no_trans,放 public 才能约束所有分区的规则)这就是"哪些可见"的强制机制。alps_s0(MTK 工程)的 device/mediatek/sepolicy/basic/ 提供。所有分区(system/system_ext/product/vendor)都可引用。init的公开约束、跨分区共用的 type/attribute/neverallow。——vendor 的 .cil 只能引用 plat 的。

新时代农民工 103

Android 开发入门实践(二):Kotlin 空安全,从可空类型到安全访问

延续 NewsApp 项目中的新闻标题练习,记录 Kotlin 安全调用。

Easyhood的博客 277

Android 模块化收口:能力组合框架、手写 LifecycleOwner 与热修复共存

二十多个模块业务高度相似却各有差异,核心矛盾在于“统一与灵活”的平衡。通过角色接口组合(如IProjectAware、IVoiceAware)实现能力按需注入,新增功能零侵入;用模板方法锁定生命周期流程,确保顺序一致;结合@CallSuper与工厂方法,既约束关键逻辑,又保留子类自由。最终实现:骨架统一、填空自由,管得住业务,又不侵入业务。

mmsx990的博客 395

Android Message源码阅读

本文梳理了Android Handler机制中Message的核心设计:链表结构、消息复用池(sPool)及回收机制,重点解析了异步消息与同步屏障(SyncBarrier)的协同机制。当主线程需优先处理UI绘制等高优先级任务时,系统通过postSyncBarrier插入屏障,使Looper跳过普通同步消息,优先执行标记为异步的UI渲染任务,确保帧率流畅。该机制是保障Android界面响应性的关键技术之一。

u012116089的博客 192

安卓部署Linux性能实测:一颗移动处理器,能否胜任日常 Linux 开发?

本文通过在一加Ace5上部署NimoteCode的ARM64 Linux环境,测试了其在CoreMark、SQLite编译及并行构建中的表现。结果显示,尽管单核性能约2.34GHz,多核扩展比达6.15×,但优化编译耗时仍高达35秒,反映移动处理器虽具备一定开发能力,却受限于文件系统开销与运行环境(如PRoot)。实际开发中,非优化构建效率较高,而并行编译可显著提速。结论:安卓手机可作为轻量级开发辅助工具,但无法替代桌面环境,真正价值在于便携性与即时响应,而非全功能替代。

一个不知名码农的专栏 297

CTF 命令执行题学习笔记:终端特殊字符 $IFS 与 %09 的用法(HelloCTF RCE-labs)

空格被过滤时:用%09(TAB)或$IFS代替空格关键词被过滤时:用通配符?或字符类[f]拼出被禁的词,让 WAF 在原始字符串里看不到它,shell 在执行时再展开这类技巧在后续的命令执行题里会反复用到,建议亲手在靶机上敲一遍感受一下。

YY888888_的博客 540

云手机私有化部署完整方案:基于ARM服务器搭建私有安卓云集群

ARM 服务器是私有化安卓云集群最优硬件底座,原生架构匹配 Android,高密度、低损耗,非常适合企业内网场景。整套私有化方案的核心,从来不是 “跑起来安卓”,而是隔离可控、可审计、可运维、可扩容。两条路线各有取舍:开源自建灵活、门槛高;商用私有化交付开箱即用、安全能力完备,是当前企业生产环境主流方案。六边云手机私有化方案,补齐了自建方案在驱动适配、管控平台、审计合规、信创适配上的短板,适合对数据主权、内网隔离有强需求的政企、自研 App、垂直行业客户。

a598652的博客 312
上一篇: Android ApiDemos示例解析(90):OS->Sensors
下一篇: Android ApiDemos示例解析(92):Text->Linkify
引路蜂
博客等级 码龄16年 3122粉丝 711原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值