精华内容
下载资源
问答
  • 基于短信的android地理位置获取

    千次阅读 2012-09-21 17:48:13
    可以通过短信获取对方地理位置;前提是对方都需要安装本apk; 应用测试来看,比较耗费流量,每次使用好像在1M至2M之间流量耗费; 应用主要功能:(基于短消息的位置信息服务) 2.1—>手机A ...

    分享个与gps定位相关的apk(内含源码);

    可以通过发短信获取对方的地理位置;前提是对方都需要安装本apk;

    应用测试来看,比较耗费流量,每次使用好像在1M至2M之间的流量耗费;




    应用的主要功能:(基于短消息的位置信息服务)
    2.1—>手机A 发送数字1至手机B(如果手机B已安装该apk),会自动进入上述程序,此时你可以按菜单键进行Accept操作,将你的位置发给对方;(发送之前会有确认提示);
    Accept键只接受最新那条请求记录;

    2.2—>假如你已经获取对方的位置信息(就是对方将他的位置以短消息的形式发给了你—-前提是通过该应用的accept键);然后你就可以通过菜单中的posHavGot键查询对方在地图上的位置;posHavGot键只查询最新那条记录的位置;


    其他功能:
    <.1>按返回键可以自动聚焦至本机位置;

    <2>请求者的号码如果已在你的电话簿中,会自动转成对方的名字;

    <3>点击本机位置图标,可以即时显示当前位置信息;本机位置是一直在刷新的;


    源码地址:(apk在bin下面)

    http://download.csdn.net/detail/dk8705/4585779


    展开全文
  • Android开发之获取手机短信验证码

    千次阅读 2016-11-10 21:14:44
    SMS" > "android.permission.READ_SMS" > 方式一:通过广播监听短信消息(注意:这种方式只对新收到的短消息有效,运行代码,并不会读取收件箱中已读或未读的消息,只有当收到新来的短消息时,才会执行onChange...

    前提--权限:

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. <uses-permission android:name="android.permission.RECEIVE_SMS" >  
    2. </uses-permission>  
    3. <uses-permission android:name="android.permission.READ_SMS" >  
    4. </uses-permission>  


    方式一:通过广播监听短信消息

    (注意:这种方式只对新收到的短消息有效,运行代码,并不会读取收件箱中已读或未读的消息,只有当收到新来的短消息时,才会执行onChange方法)


    注册一个广播:

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. <receiver android:name="com.dbjtech.acbxt.waiqin.SmsReciver" >  
    2.            <intent-filter android:priority="999">  
    3.                <action android:name="android.provider.Telephony.SMS_RECEIVED" />  
    4.            </intent-filter>  
    5.        </receiver>  

    SmsReceiver.Java

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. public class SmsReciver extends BroadcastReceiver {  
    2.   
    3.     @Override  
    4.     public void onReceive(Context context, Intent intent) {  
    5.         Bundle bundle = intent.getExtras();  
    6.         SmsMessage msg = null;  
    7.         if (null != bundle) {  
    8.             Object[] smsObj = (Object[]) bundle.get("pdus");  
    9.             for (Object object : smsObj) {  
    10.                 msg = SmsMessage.createFromPdu((byte[]) object);  
    11.             Date date = new Date(msg.getTimestampMillis());//时间  
    12.                 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
    13.                 String receiveTime = format.format(date);  
    14.                 System.out.println("number:" + msg.getOriginatingAddress()  
    15.                 + "   body:" + msg.getDisplayMessageBody() + "  time:"  
    16.                         + msg.getTimestampMillis());  
    17.                   
    18.                 //在这里写自己的逻辑  
    19.                 if (msg.getOriginatingAddress().equals("10086")) {  
    20.                     //TODO  
    21.                       
    22.                 }  
    23.                   
    24.             }  
    25.         }  
    26.     }  
    27.   
    28. }  


    系统的这个广播是有序广播,就是当别的程序先获取到了这个广播再传递给你,当然它也可以干掉这个广播,让你接收不到,这样你的程序肯定是接收不到这个广播的了。我们发现,通过设置priority的数值,其实有时是不管用的,现在在一些定制的系统或是有安全软件的情况下,往往短消息都被截取到,并被干掉。

    那么,我们只能使用方法二,监听短信数据库的变化,这种方式比方法一稍微复杂一些,不过使用起来也很方便,不受其它程序干扰~


    方式二:通过短信数据库获取短信内容

    (注意:这种方式可以获取手机上所有的短信,包括已读未读的短信,是不是很赞)

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. private Uri SMS_INBOX = Uri.parse("content://sms/");  
    2.     public void getSmsFromPhone() {  
    3.         ContentResolver cr = getContentResolver();  
    4.         String[] projection = new String[] { "body" };//"_id", "address", "person",, "date", "type  
    5.         String where = " address = '1066321332' AND date >  "  
    6.                 + (System.currentTimeMillis() - 10 * 60 * 1000);  
    7.         Cursor cur = cr.query(SMS_INBOX, projection, where, null"date desc");  
    8.         if (null == cur)  
    9.             return;  
    10.         if (cur.moveToNext()) {  
    11.             String number = cur.getString(cur.getColumnIndex("address"));//手机号  
    12.             String name = cur.getString(cur.getColumnIndex("person"));//联系人姓名列表  
    13.             String body = cur.getString(cur.getColumnIndex("body"));  
    14.             //这里我是要获取自己短信服务号码中的验证码~~  
    15.             Pattern pattern = Pattern.compile(" [a-zA-Z0-9]{10}");  
    16.             Matcher matcher = pattern.matcher(body);  
    17.             if (matcher.find()) {  
    18.                 String res = matcher.group().substring(111);  
    19.                 mobileText.setText(res);  
    20.             }  
    21.         }  
    22.     }  




    sms主要结构:
      
      _id:短信序号,如100
      
      thread_id:对话的序号,如100,与同一个手机号互发的短信,其序号是相同的
      
      address:发件人地址,即手机号,如+86138138000
      
      person:发件人,如果发件人在通讯录中则为具体姓名,陌生人为null
      
      date:日期,long型,如1346988516,可以对日期显示格式进行设置
      
      protocol:协议0SMS_RPOTO短信,1MMS_PROTO彩信
      
      read:是否阅读0未读,1已读
      
      status:短信状态-1接收,0complete,64pending,128failed
      
      type:短信类型1是接收到的,2是已发出
      
      body:短信具体内容
      
      service_center:短信服务中心号码编号,如+8613800755500


    通过方式二,我们就能获取手机中所有的短消息了,可是还有一个问题,如果来了新的短消息呢?我们总不能写个线程,每隔多少秒,去读取一下短信数据库吧?其实我们可以把方式二换个方式写:

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. private SmsObserver smsObserver;  
    2.   
    3.     protected void onCreate(Bundle savedInstanceState) {  
    4.         super.onCreate(savedInstanceState);  
    5.         setContentView(R.layout.app_login);  
    6.         smsObserver = new SmsObserver(this, smsHandler);  
    7.         getContentResolver().registerContentObserver(SMS_INBOX, true,  
    8.                 smsObserver);  
    9.   
    10.     }  
    11.     public Handler smsHandler = new Handler() {  
    12.         //这里可以进行回调的操作  
    13.         //TODO  
    14.   
    15.     };  
    16.     class SmsObserver extends ContentObserver {  
    17.   
    18.         public SmsObserver(Context context, Handler handler) {  
    19.             super(handler);  
    20.         }  
    21.   
    22.         @Override  
    23.         public void onChange(boolean selfChange) {  
    24.             super.onChange(selfChange);  
    25.             //每当有新短信到来时,使用我们获取短消息的方法  
    26.             getSmsFromPhone();  
    27.         }  
    28.     }  



    效果:



    展开全文
  • 它将通过短信或应用程序发送消息,具体取决于您选择设置。 此消息将包括诸如您宠物名称、照片以及它们可能有多友好等内容。 它旨在快速发布新闻,并让其他人搜索您最好朋友,以确保它们平安无事。 内置 React...
  • 通过代码定时给手机推送短信短信内容可以自定义文字,当然你也可以去别网站爬取每日心灵鸡汤,天气预报或其它信息进行推送。关于爬取数据可以参考:Python40行代码实现天气预报和每日鸡汤推送 本文主要讲如何...
  • 它还处理来自用户的消息,并相应地更新其数据。 我正在使用自定义的来获取随机报价,以发送给订阅者。 去做 完成iOS管理员界面,以便管理员查看已订阅的用户并发送大量消息。 允许用户添加仅限于其帐户的自己的...
  • 要使用此插件,您需要注册到他们网站并从他们服务中获取电话号码,它将在配置中将您用作twilioNumber 。 可以从检索accountSid和authToken 设置完所有这些之后,您可以继续在Homebridge上安装插件。 安装 使用...
  • Android上监听收到短信(SMS) 方式一:通过广播监听短信消息 方式二:通过短信数据库获取短信内容
  • 不过PDU发送方式在发送和解码过程中非常麻烦, 在工程项目中,一般发送命令都要求用户使用英文文本 就PDU发送编码而言,首先必须通过AT指令获取模块消息中心,整个编码一般由以下几个部分组成: A:短信息...

    通用的GPRS模块发送短信主要是两种方式:PDU与Text,两种方式都可以实现中文与英文短信的发送。

    不过PDU发送方式在发送和解码过程中非常麻烦,

    在工程项目中,一般发送的命令都要求用户使用英文文本

    就PDU发送编码而言,首先必须通过AT指令获取模块的短消息中心,整个编码一般由以下几个部分组成:

    A:短信息中心地址长度,2位十六进制数(1字节)。
    B:短信息中心号码类型,2位十六进制数。
    C:短信息中心号码,B+C的长度将由A中的数据决定。
    D:文件头字节,2位十六进制数。
    E:信息类型,2位十六进制数。
    F:被叫号码长度,2位十六进制数。
    G:被叫号码类型,2位十六进制数,取值同B。
    H:被叫号码,长度由F中的数据决定。
    I:协议标识,2位十六进制数。
    J:数据编码方案,2位十六进制数。
    K:有效期,2位十六进制数。
    L:用户数据长度,2位十六进制数。
    M:用户数据,其长度由L中的数据决定。J中设定采用UCS2编码,这里是中英文的Unicode字符。

    看看,工作量大吧,不过一次成型无限次使用,

    如果用Text方式发送就方便多了,就像发送英文短信一样发送就行了

    我在工程中本想使用Text方式发送中英文混编的短信,但原因在我上一遍博客里面讲了,联通的186卡(其他卡没试过)发送了几十条短信后就不行了

    然后把卡放到手机里面也不行,去联通问,回答是:短信功能正常,有可能通信管理局因为某种原因卡擦掉了。天哪,从来就没做过对不起国家、党、人民的事情,怎么会这样呢,要说我发垃圾短信?根本就不是垃圾短信,而且间隔将近30秒,煲短信粥的频率跟我这个也差不多吧。

    这是怎么回事?我已经报废三张卡了

    请问有人遇到过这个问题嘛?

    展开全文
  • 前提--权限: [java] view plaincopy "android.permission.RECEIVE_SMS" >  ...方式一:通过广播监听短信消息 (注意:这种方式只对新收到消息有效,运行代码,并不会读取收

    前提--权限:

    [java] view plaincopy在CODE上查看代码片派生到我的代码片
    1. <uses-permission android:name="android.permission.RECEIVE_SMS" >  
    2. </uses-permission>  
    3. <uses-permission android:name="android.permission.READ_SMS" >  
    4. </uses-permission>  


    方式一:通过广播监听短信消息

    (注意:这种方式只对新收到的短消息有效,运行代码,并不会读取收件箱中已读或未读的消息,只有当收到新来的短消息时,才会执行onChange方法)


    注册一个广播:

    [java] view plaincopy在CODE上查看代码片派生到我的代码片
    1. <receiver android:name="com.dbjtech.acbxt.waiqin.SmsReciver" >  
    2.            <intent-filter android:priority="999">  
    3.                <action android:name="android.provider.Telephony.SMS_RECEIVED" />  
    4.            </intent-filter>  
    5.        </receiver>  

    SmsReceiver.java

    [java] view plaincopy在CODE上查看代码片派生到我的代码片
    1. public class SmsReciver extends BroadcastReceiver {  
    2.   
    3.     @Override  
    4.     public void onReceive(Context context, Intent intent) {  
    5.         Bundle bundle = intent.getExtras();  
    6.         SmsMessage msg = null;  
    7.         if (null != bundle) {  
    8.             Object[] smsObj = (Object[]) bundle.get("pdus");  
    9.             for (Object object : smsObj) {  
    10.                 msg = SmsMessage.createFromPdu((byte[]) object);  
    11.             Date date = new Date(msg.getTimestampMillis());//时间  
    12.                 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
    13.                 String receiveTime = format.format(date);  
    14.                 System.out.println("number:" + msg.getOriginatingAddress()  
    15.                 + "   body:" + msg.getDisplayMessageBody() + "  time:"  
    16.                         + msg.getTimestampMillis());  
    17.                   
    18.                 //在这里写自己的逻辑  
    19.                 if (msg.getOriginatingAddress().equals("10086")) {  
    20.                     //TODO  
    21.                       
    22.                 }  
    23.                   
    24.             }  
    25.         }  
    26.     }  
    27.   
    28. }  

    系统的这个广播是有序广播,就是当别的程序先获取到了这个广播再传递给你,当然它也可以干掉这个广播,让你接收不到,这样你的程序肯定是接收不到这个广播的了。我们发现,通过设置priority的数值,其实有时是不管用的,现在在一些定制的系统或是有安全软件的情况下,往往短消息都被截取到,并被干掉。

    那么,我们只能使用方法二,监听短信数据库的变化,这种方式比方法一稍微复杂一些,不过使用起来也很方便,不受其它程序干扰~


    方式二:通过短信数据库获取短信内容

    (注意:这种方式可以获取手机上所有的短信,包括已读未读的短信,是不是很赞)

    [java] view plaincopy在CODE上查看代码片派生到我的代码片
    1. private Uri SMS_INBOX = Uri.parse("content://sms/");  
    2.     public void getSmsFromPhone() {  
    3.         ContentResolver cr = getContentResolver();  
    4.         String[] projection = new String[] { "body" };//"_id", "address", "person",, "date", "type  
    5.         String where = " address = '1066321332' AND date >  "  
    6.                 + (System.currentTimeMillis() - 10 * 60 * 1000);  
    7.         Cursor cur = cr.query(SMS_INBOX, projection, where, null"date desc");  
    8.         if (null == cur)  
    9.             return;  
    10.         if (cur.moveToNext()) {  
    11.             String number = cur.getString(cur.getColumnIndex("address"));//手机号  
    12.             String name = cur.getString(cur.getColumnIndex("person"));//联系人姓名列表  
    13.             String body = cur.getString(cur.getColumnIndex("body"));  
    14.             //这里我是要获取自己短信服务号码中的验证码~~  
    15.             Pattern pattern = Pattern.compile(" [a-zA-Z0-9]{10}");  
    16.             Matcher matcher = pattern.matcher(body);  
    17.             if (matcher.find()) {  
    18.                 String res = matcher.group().substring(111);  
    19.                 mobileText.setText(res);  
    20.             }  
    21.         }  
    22.     }  

    sms主要结构:

      
      _id:短信序号,如100
      
      thread_id:对话的序号,如100,与同一个手机号互发的短信,其序号是相同的
      
      address:发件人地址,即手机号,如+86138138000
      
      person:发件人,如果发件人在通讯录中则为具体姓名,陌生人为null
      
      date:日期,long型,如1346988516,可以对日期显示格式进行设置
      
      protocol:协议0SMS_RPOTO短信,1MMS_PROTO彩信
      
      read:是否阅读0未读,1已读
      
      status:短信状态-1接收,0complete,64pending,128failed
      
      type:短信类型1是接收到的,2是已发出
      
      body:短信具体内容
      
      service_center:短信服务中心号码编号,如+8613800755500


    通过方式二,我们就能获取手机中所有的短消息了,可是还有一个问题,如果来了新的短消息呢?我们总不能写个线程,每隔多少秒,去读取一下短信数据库吧?其实我们可以把方式二换个方式写:

    [java] view plaincopy在CODE上查看代码片派生到我的代码片
    1. private SmsObserver smsObserver;  
    2.   
    3.     protected void onCreate(Bundle savedInstanceState) {  
    4.         super.onCreate(savedInstanceState);  
    5.         setContentView(R.layout.app_login);  
    6.         smsObserver = new SmsObserver(this, smsHandler);  
    7.         getContentResolver().registerContentObserver(SMS_INBOX, true,  
    8.                 smsObserver);  
    9.   
    10.     }  
    11.     public Handler smsHandler = new Handler() {  
    12.         //这里可以进行回调的操作  
    13.         //TODO  
    14.   
    15.     };  
    16.     class SmsObserver extends ContentObserver {  
    17.   
    18.         public SmsObserver(Context context, Handler handler) {  
    19.             super(handler);  
    20.         }  
    21.   
    22.         @Override  
    23.         public void onChange(boolean selfChange) {  
    24.             super.onChange(selfChange);  
    25.             //每当有新短信到来时,使用我们获取短消息的方法  
    26.             getSmsFromPhone();  
    27.         }  
    28.     }  


    效果:

    展开全文
  • Junebug是一个用于通过RESTful HTTP接口管理文本消息传送系统,该接口支持: 创建,自省,更新和删除传输 发送和接收短信 接收已发送短信的状态更新 监控运输运行状况和性能 检索最近传输日志以调试传输问题。...
  • 这是一项为没有智能手机或没有数据人提供基于短信的信息服务。 我知道这适用于美国和加拿大。 您必须根据需要以正确格式向1(312)313-1234发送文本消息 方向 表格格式应为[mode] from [origin] to ...
  • 获取AccessKeyID ,AccessKey Secret我就说个大概,大家可以看官方帮助文档 1、前期准备 首先注册一个阿里云账号 然后登录,产品分类,选择短信服务 点击管理控制台 进入到下面界面就可以通过新手引导,和...
  • 这是一个python脚本,可以在给定时间范围内自动从自定义消息列表向您想要与之保持良好关系选定联系人发送自定义圣诞节/新年问候消息在Facebook Messenger,WhatsApp,Telegram或通过SMS上。 这个圣诞节该变成...
  • 青色标题表示接收到的消息。 脚步 发送至:消息索引(左侧的数字),电话号码或无(默认为最后一条消息的发件人)。 消息:您的消息内容(不支持新行) 确认: “ Y”或“ y”进行确认。 安装 安装应用程序并登录...
  • 除了大量使用手机用户到手机用户点对点短信业务之外,从信息平台到手机用户的短信信息服务业务也在快速发展,该业务已经成为广大用户及时 方便地获取信息一种手段。在广大服务提供商(SP)支持下,用户可以...
  • 交换机获取消息后交给绑定这个生产者队列(关系是通过队列名称完成) 监听当前队列消费者获取消息,执行消费逻辑 应用场景:短信,聊天 2. 工作模式 生产者将消息交个交换机 交换机交给绑定队列 队列由多个消费...
  • 这就是要发送信息模板,可以在这里进行创建,审核通过之后就可以使用了 文件导入 将短信接口文件放到项目目录下,导入maven项目 获取ak ak在这里 找到自己ak 程序修改 导入成功之后
  • 手机上的消息推送

    2013-07-30 12:15:11
    1.定期查询:按照指定的时间间隔连接服务器查询获取最新的消息。实现起来简单,非实时,查询时间过短则流量耗费多,耗电量大。下面是一个爱立信的测试结果:   2.短信方式:需要及时发送消息给客户端时也可以...
  • 介绍 使用免费GSM通信库GSMComm简单SMS应用程序,用于使用我们所有消息和收件人号码Excel文件将批量SMS发送到多个收件人 背景 对于学习非常有帮助...如何以最少努力使用免费GSM通信库通过C#发送SMS :-) ...
  • App读取短信实现

    千次阅读 2020-05-24 16:57:57
    应用中通常会涉及到读取短信,下面通过自动获取短信验证码演示了如何在应用中读取短信。 权限 <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name=...
  • 针对Android 平台智能终端在获取推送消息时存在与服务器端数据同步、费电、耗流量和推送成本高等问题,通过对传统Pull 和Push 方式简单轮询、短信服务、持久连接和长轮询等四种技术分析和对Android 平台目前...
  • - 对于WebApp用户,现在将消息标记为在通过短信通知单击或阅读收到SMS通知后在手机上阅读 (自动解除不会将其标记为已读) - 使用新Web应用程序(http://mightytext.net/install)更高效地工作 6.6 - 改进...
  • OTA 短信模式

    千次阅读 2015-02-06 15:21:28
     一项基于短消息的机制,通过手机终端或服务器(网上)方式实现SIM卡内业务菜单动态下载、删除与更新,使用户获取个性化信息服务数据增值业务(简称OTA业务) J2me软件通过OTA方式,无线下载安装到手机上。 ...
  • 通过微信公众平台登录微信小程序后台,按照下面步骤选取模板,获取模板id,消息推送要用。 模板id 二、其他参数准备 (1)参数介绍 openid:每个微信唯一id,服务通知用它作用是你想要通知谁,谁...
  • 近期微信小程序上线新功能,将流量生态延伸到微信以外渠道,进一步补足了小程序营销场景。除了之前上线过 app 跳转小程序,小程序再...开发者通过服务端接口可以获取打开小程序任意页面 URL Scheme,后台支持生成
  • Niushop B2C 阿里云短信服务使用教程 ...如果提示已开通过短信服务,却跳转到消息服务,可以向阿里云提交工单,把消息服务迁移到短信服务 1、申请短信服务 2、页面右上角账号下边获取accesskeys 3、点击...
  • RubbitMQ消息中间键

    2021-05-06 19:46:21
    交换机获取消息后交给绑定这个生产者队列(关系是通过队列名称完成) 监听当前队列消费者获取消息,执行消费逻辑 应用场景:短信,聊天 工作模式 生产者将消息交个交换机 交换机交给绑定队列 队列由多个消费者...
  • 企业短信平台

    2006-09-17 19:09:37
    企业还可充分利用行业专有信息资源,通过短信的方式向有需求公众提供信息服务,使企业信息资源价值化。  SUNS企业短信平台是专业化短信应用平台,既能满足移动运营商多功能、大短信量平台要求,又能满足各...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 290
精华内容 116
关键字:

通过短信获取的消息