`

【转】数据短信

 
阅读更多

Objective


Use SMS to send and receive raw data within your App.

Issue


When you want send information with the function SMSManager#sendTextMessage, the sent SMS is stored in the sent messages list, then it triggers a notification when the recipient received this message and the system store it in the inbox in plain text.
With this method, there is not security and it's annoying for the user, because he has to clean up its inbox.

Solution

Steps

1. Send your message on a specific port with the SMSManager#sendDataMessage function
2. Register a BroadcastReceiver on the same port
3. Add the required permissions in your manifest

Details

1. Send your message on a specific port with the SMSManager#sendDataMessage function

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void sendMessage(final byte[] message) {
    //define the phone number
    final String port = "90";
    final String phoneNumber = "5146792345"
    //intent broadcasted when the SMS is sent
    final PendingIntent sendIntent = PendingIntent.getBroadcast(
            this.context, 0, new Intent(0), 0);
    //intent broadcasted when the SMS is received
    final PendingIntent delivery = PendingIntent.getBroadcast(
            this.context, 0, new Intent(0), 0);
    //send data
    final SmsManager smsManager = SmsManager.getDefault();
    smsManager.sendDataMessage(phoneNumber, "", port,
            message, sendIntent, delivery);
}



2. Register a BroadcastReceiver on the same port

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
BroadcastReceiver receivedBroadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        final Bundle bundle = intent.getExtras();
        SmsMessage[] msgs = null;
 
        if (null != bundle) {
            final Object[] pdus = (Object[]) bundle.get("pdus");
            msgs = new SmsMessage[pdus.length];
            byte[] data = null;                   
            //read data
            for (int i = 0; i < msgs.length; i++) {
                msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                data = msgs[i].getUserData();
            }
            if (data != null) {
               //use data
            }
        }
    }
};
//register the receiver
final String port = "90";
final IntentFilter intentFilter = new IntentFilter(
        "android.intent.action.DATA_SMS_RECEIVED");
intentFilter.addDataScheme("sms");
intentFilter.addDataAuthority("*", port);
this.context.registerReceiver(this.receivedBroadcastReceiver,
        intentFilter);



3. Add the required permissions in your manifest.

1
2
<uses -permission="-permission" android:name="android.permission.SEND_SMS" />
<uses -permission="-permission" android:name="android.permission.RECEIVE_SMS" />
 
转自:http://blog.fordemobile.com/2012/09/use-sms-to-send-and-receive-raw-data.html
分享到:
评论

相关推荐

    中国银联移动支付技术规范_第2卷-第5部分-数据短信转换平台应用和接口规范

    中国银联移动支付技术规范_第2卷-第5部分-数据短信转换平台应用和接口规范

    TaoModual_OCX诺亚短信控件

    诺亚短信控件 ~~~~~~~~~~~~ 本控件支持大部分的手机和GSM工业模块,通过计算机串口或USB转串口可以 实现手机或GSM工业模块短信收发,电话簿管理,拨打电话等工作. 一、主要特点: ========== 1.数据收发可靠,经过大量...

    短信平台软件需求分析

    概述 项目建设背景  目前,我国的移动电话用户... 企业内部的网络管理通过企业短信通信平台,可以方便、高效、快速地完成设备故障预告、人员调度、数据统计等管理实务。促进了公司内部的沟通,丰富了公司的管理手段。

    利用大数据分析,赋能以客户为中心的业务转型.docx

    几年前,银行总是能通过短信、电话等渠道向你发送各种推荐信息,比如一张新的信用卡,新的房屋贷款,针对新企业新的信用额度等。显而易见,这种海量推送式的市场营销说明银行实际上对自己客户的需求和个性缺乏了解。...

    LTE 4G RLC PDU数据 16进制转换为文本

    4G LTE TDD 下行RLC数据 保存的16进制RLC的协议数据单元(PDU) 解析出完整的PDU,并转换为文本格式

    语音文字短信无线发射机设计.pdf

    摘要: 语音/文字短信无线发射机是...用P 几262 编码器芯片和 AT89S52 单片机实现文字短信数据传输业务,以及对机号的选择与控制等功能。音频输入和文字短 信数据输入可自动转换,显示采用 128x64 点阵型液晶显示。

    电信ISAG短信网关wsdl文件

    ISAG屏蔽了底层网络的复杂性,实现对移动数据、移动语音、PHS业务的业务能力高度抽象,封装 成开放、统一、标准应用开发接口提供给CP/SP,支持电信自营增值业务、第三方CP/SP增值业务及 企业应用的接入;为CP/...

    iPhone数据传输软件-DiskAid v6.6.2.zip

    同时DiskAid还支持短信,联系人等信息的导出。   DiskAid v6.6升级日志: -新增克隆一个设备在单个操作一个或多个设备功能; -新增恢复设备备份所有或选择数据集; -新增管理和更改备份密码选项; -新增改变...

    短信网关源代码(2.0.3)

    3、 通讯数据库表名:msgcomm.doc, 这是数据库表名的说明文档,内有ACCESS及SQL SERVER数据库生成文档4、 用户接口标准.txt, 这是网关收发数据的格式说明,存入数据库中的短信将最终转换成此格式并发送5、 ...

    Delphi短信网络接口源码.rar

     4、用户接口标准.txt, 这是网关收发数据的格式说明,存入数据库中的短信将最终转换成此格式并发送  5、GetIPInfo.dll 获得spClient.exe所连接的ip地址, 如果不能连接服务器时,程序将调用库函数更新IP。

    毕业设计-单片机控制GSM模块实现短信收发的软件设计.doc

    由于公众GSM网络在全球范围内实 现了联网和漫游,建议上述系统不需再组建专用通信网络,所以具有实时传输数据功能 的短信应用将得到迅速普及。笔者开发设计的基于GSM网络的温度数据采集与无线传输系 统正是借助该...

    HwLib全集成数据平台.pdf

    2、支持微信、语音、钉钉、电邮、短信等多种报警方式; 3、灵活的组态方式; 4、多种报警触发方式,布尔类型变量、模拟量上下限报警等; 5、支持数据归档; 6、支持数据发布,可以在内网或者外网通过WEB API或者...

    2019数据运营思维导图

    作用 精准营销 分析产品潜在用户,针对特定群体利用短信、邮件等方式进行营销 用户统计 如购买某类书籍人数 TOP10 数据挖掘 定义 把散乱数据转换成有价值信息的过程 效果评估 完善产品运营,提升服务质量 其实这也就...

    数据运营思维导图

    分析产品潜在用户,针对特定群体利用短信、邮件等方式进行营销 用户统计 如购买某类书籍人数 TOP10 数据挖掘 定义 把散乱数据转换成有价值信息的过程 效果评估 完善产品运营,提升服务质量 其实这也就相当于...

    易语言串口控制短信猫

    没有dll 纯代码 从串口获取数据 包括PDU解码 非模块 部分其余编码是用模块完成的 可以自己转成代码

    PDU短信编码器

    PDU短信编码器, 一种pdu短信编码工具,可以将数据转换成unlcode码,方便gsm方面的开发

    玩转手机及破解3

    玩转手机可以让用户通过数据线、红外适配器或蓝牙适配器等通信装置,在PC上管理手机短信、彩信、电话本、日程、图片、铃声、游戏、文件等资料;与手机自动同步电话本、日历等数据;引导用户在PC上通过手机拨号上网。...

    动网dvbbs6(7)access转phpwind1.31转换程序

    phpwind1.3.6和PW1.3.1数据表结构没太大变化,原来转换到PW1.3.1的转换程序仍然支持1.3.6的转换:)动网dvbbs6(7)access版转phpwind1.31插件1.本程序只转换了用户,板块,主题和帖子(投票没有转换,板块需要重新...

    大数据分析pdf.pdf

    互联网(社交、搜索、电商)、移动互联网(微博)、物 联网(传感器,智慧地球)、车联网、GPS、医学影像、安全监控、金融(银 行、股市、保险)、电信(通话、短信)都在疯狂产生着数据。 全球每秒钟发送 2.9 百万...

Global site tag (gtag.js) - Google Analytics