Python接收手机短信的代码整理

python解决接口测试获取手机验证码问题的方法:

Android在收到短信后会发送一个Action为android.provider.Telephony.SMS_RECEIVED的广播,所以我们只需要写个类继承BroadcastReceiver就可以很容易地监听到短信。

package com.example.getsms;

import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.text.TextUtils;
import android.util.Log;

public class SmsInterceptReceiver extends BroadcastReceiver {

private final String TAG = "SmsRec";

 private static final String SMS_EXTRA_NAME ="pdus";

 @Override
 public void onReceive(Context context, Intent intent) {
 // TODO Auto-generated method stub
 String message = "";

 Log.e(TAG, "free message " );

  Bundle extras = intent.getExtras();
  if ( extras != null ) {
   try {
   Object[] smsExtra = (Object[]) extras.get( SMS_EXTRA_NAME );
    ContentResolver contentResolver = context.getContentResolver();

    Log.e(TAG, "free message " );
    for ( int i = 0; i < smsExtra.length; ++i ) {
     SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]);

     String body = sms.getMessageBody().toString();
     message += body;
    }

    Log.e(TAG, "free message : " + message);
   } catch (Exception e) {
   // TODO: handle exception
   Log.e(TAG, e.getMessage());
   }
  }
 }
}

AndroidManifest.xml里注册一下接收器:

 <receiver android:name=".SmsInterceptReceiver">
   <intent-filter>
   <action android:name="android.provider.Telephony.SMS_RECEIVED" />
   </intent-filter>
  </receiver>

添加权限:

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

python 代码,主要通过adb log来获取apk包所截取的短信信息,然后进行分析后既可使用。

__author__ = 'guozhenhua'
#coding=utf-8
import urllib2
import os,time
#解析短信验证码
os.system("adb logcat -c")
cmd="adb logcat -d |findstr E/SmsRec"
#time.sleep(30);
while(1):
 smscode= os.popen(cmd).read()
 #print smscode
 if (smscode!=""):
  smscode=smscode.split("验证码:")[1].split(",")[0]
  break;
print "验证码是:"+smscode

实例扩展:

package com.example.getsms;

import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.text.TextUtils;
import android.util.Log;

public class SmsInterceptReceiver extends BroadcastReceiver {

private final String TAG = "SmsRec";

 private static final String SMS_EXTRA_NAME ="pdus";

 @Override
 public void onReceive(Context context, Intent intent) {
 // TODO Auto-generated method stub
 String message = "";

 Log.e(TAG, "free message " );

  Bundle extras = intent.getExtras();
  if ( extras != null ) {
   try {
   Object[] smsExtra = (Object[]) extras.get( SMS_EXTRA_NAME );
    ContentResolver contentResolver = context.getContentResolver();

    Log.e(TAG, "free message " );
    for ( int i = 0; i < smsExtra.length; ++i ) {
     SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]);

     String body = sms.getMessageBody().toString();
     message += body;
    }

    Log.e(TAG, "free message : " + message);
   } catch (Exception e) {
   // TODO: handle exception
   Log.e(TAG, e.getMessage());
   }
  } 

 }

}

以上就是Python接收手机短信的代码整理的详细内容,更多关于Python怎么接收手机短信的资料请关注我们其它相关文章!

(0)

相关推荐

  • 15行Python代码实现免费发送手机短信推送消息功能

    实现的功能: 通过代码定时给手机推送短信,短信内容可以自定义文字,当然你也可以去别的网站爬取每日心灵鸡汤,天气预报或其它信息进行推送.关于爬取数据可以参考:Python40行代码实现天气预报和每日鸡汤推送 本文主要讲如何实现发送短信的功能,全部代码只用15行. 首先贴出实现的效果图,后面再分两步详细描述实现过程,第一步免费注册api接口,第二步只需要写10来行代码. 代码运行后本地收到返回的执行情况: 手机收到代码发送过来的短信截图: 实现过程: 1.免费注册获取发送短信的api接口 我们需要A

  • python实现发送和获取手机短信验证码

    首先为大家分享python实现发送手机短信验证码后台方法,供大家参考,具体内容如下 1.生成4位数字验证码 def createPhoneCode(session): chars=['0','1','2','3','4','5','6','7','8','9'] x = random.choice(chars),random.choice(chars),random.choice(chars),random.choice(chars) verifyCode = "".join(x) s

  • 利用Python实现手机短信监控通知的方法

    日常运维工作中,通常是邮件报警机制,但邮件可能不被及时查看,导致问题出现得不到及时有效处理.所以想到用Python实现发短信功能,当监控到问题出现时,短信报警,使问题能得到及时的处理.当然,我相信,用Python发短信应用场景不止此一处,下面我们开始Python发短信的实现. 首先,看下成果展示: 然后,看下代码实现: 是不是非常简单! 现在开始具体讲解,如何实现Python发短信功能. 操作步骤 1.安装模块 twilio pip install twilio 2.申请获得twilio的API

  • python twilio模块实现发送手机短信功能

    前排提示:这个模块不是用于对陌生人进行短信轰炸和电话骚扰的,这个模块也没有这个功能,如果是抱着这个心态来的,可以关闭网页了 语言:python 步骤一:安装twilio模块 pip install twilio 步骤二:进入官网注册 https://www.twilio.com 注册完毕之后,会有一个调查,问你准备做什么项目,在这里先选择短信项目 项目创建之后,申请一个试用号码 在上方图片中有用的信息有三个:试用号码,账号SID,和验证令牌,后两个用右边的复制按钮进行复制 步骤三:绑定一个手机号

  • Python接收手机短信的代码整理

    python解决接口测试获取手机验证码问题的方法: Android在收到短信后会发送一个Action为android.provider.Telephony.SMS_RECEIVED的广播,所以我们只需要写个类继承BroadcastReceiver就可以很容易地监听到短信. package com.example.getsms; import android.content.BroadcastReceiver; import android.content.ContentResolver; imp

  • Android监听手机短信的示例代码

    本文介绍了Android监听手机短信的示例代码,分享给大家,具体如下: 以下情况可能会导致短信拦截失败: 小米,360等品牌手机拦截短信,短信的优先级给了系统 用户禁用短信权限 手机连接电脑,被电脑端的手机助手类软件截获 手机内装有QQ通讯录之类的管理联系人,短信的应用,被截获. 前提--权限: <uses-permission android:name="android.permission.RECEIVE_SMS" > </uses-permission>

  • Python调用腾讯云短信服务发送手机短信

    目录 1.准备工作 2.代码实现 3.拓展 4.闲聊 1.准备工作 pip install qcloudsms_py 1.注册腾讯云账号 2.在产品列表内找到短信,在短信内添加应用 3.获取对应的SDK AppID 和 App Key 4.配置短信内容 注:需先申请“短信签名”和“短信正文”,按照要求填写申请即可,腾讯云的审核效率还是很快的,一般在1-2个小时内就会有结果 注:腾讯云的短信服务现在好像也不免费了,之前每个月还会赠送100条免费短信额度.总结:准备工作准备内容:SDK AppID.

  • 基于Java随机生成手机短信验证码的实例代码

    简单版 /** * 产生4位随机数(0000-9999) * * @return 4位随机数 */ public static String getFourRandom() { return StringUtils.leftPad(new Random().nextInt(10000) + "", 4, "0"); } 复杂版 /** * 创建指定数量的随机字符串 * @param numberFlag 是否是数字 * @param length * @return

  • Java实现发送手机短信语音验证功能代码实例

    这篇文章主要介绍了Java实现发送手机短信语音验证功能代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 利用第三方平台可以实现发送手机短信验证码和语音验证码的功能,本文使用框架是struts2+spring+hibernate,现就action层给出核心代码功能. public class VerifyAction extends BaseAction<VerifyRequest> { private static final long

  • Android实现双模(CDMA/GSM)手机短信监听的方法

    本文实例讲述了Android实现双模(CDMA/GSM)手机短信监听的方法.分享给大家供大家参考,具体如下: 一.问题分析: 最近在做一个通过短信远程启动应用的功能,要用到短信监听,代码如下: import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telepho

随机推荐