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

 更新时间:2020年08月02日 09:25:01   作者:yang  
在本篇文章里小编给大家整理的是一篇关于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怎么接收手机短信的资料请关注脚本之家其它相关文章!

相关文章

  • python基础梳理(一)(推荐)

    python基础梳理(一)(推荐)

    这篇文章主要介绍了python基础梳理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Python基于Dlib的人脸识别系统的实现

    Python基于Dlib的人脸识别系统的实现

    这篇文章主要介绍了Python基于Dlib的人脸识别系统的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 一文教你学会使用Python中的多处理模块

    一文教你学会使用Python中的多处理模块

    Python 多处理模块是一个强大的工具,用于实现并行处理,提高程序的性能和效率,本文将详细介绍 Python 中多处理模块的使用方法,希望对大家有所帮助
    2024-01-01
  • python字典快速保存于读取的方法

    python字典快速保存于读取的方法

    下面小编就为大家分享一篇python字典快速保存于读取的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Numpy创建NumPy矩阵的简单实现

    Numpy创建NumPy矩阵的简单实现

    本文主要介绍了Numpy创建NumPy矩阵的简单实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 在tensorflow中实现屏蔽输出的log信息

    在tensorflow中实现屏蔽输出的log信息

    今天小编就为大家分享一篇在tensorflow中实现屏蔽输出的log信息,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python列表(List)知识点总结

    Python列表(List)知识点总结

    在本篇文章中小编给大家分享了关于Python列表(List)知识点一直对应的实例内容,需要的朋友们学习下。
    2019-02-02
  • python深度学习tensorflow卷积层示例教程

    python深度学习tensorflow卷积层示例教程

    这篇文章主要为大家介绍了python深度学习tensorflow卷积层示例教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • python做图片搜索引擎并保存到本地详情

    python做图片搜索引擎并保存到本地详情

    这篇文章主要介绍了python做图片搜索引擎并保存到本地详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • Python 实现把列表中的偶数变成他的平方

    Python 实现把列表中的偶数变成他的平方

    这篇文章主要介绍了Python 实现把列表中的偶数变成他的平方,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03

最新评论