• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

使用装有MIUI系统的小米手机,静态注册的广播接收器监听短消息。

在AndroidManifest.xml中声明权限

uses-permission Android : name=' Android。许可。'接收_短信'/

在AndroidManifest.xml中声明广播接收器

接收器

android:name='。短信接收者'

android:enabled='true '

android:exported='true '

意图过滤器

action Android : name=' Android。提供商。电话。' SMS _ RECEIVED '/

/意图-过滤器

/接收器

广播接收器代码:

公共类SMS接收器扩展广播接收器{

@覆盖

公共接收时无效(上下文语境,意图意图){

//从目的中获取消息

SMS message[]SMS messages=getmessagesfrominent(intent);

//获取短信发送者号码

字符串发送者号码=SMS消息[0].getOriginatingAddress();

//组装短信内容

StringBuilder content=new StringBuilder();

对于(短信短信短信:短信){

内容。附加(SMS消息。getmessagebody());

}

//获取卡槽位置

捆绑捆绑=意图。get extras();

int slot=bundle。getint(‘安卓。电话。号外。slot _ INDEX ',-1);

}

}

要点:

先通过getMessagesFromIntent(意图)获取短信信息数组

再通过遍历短信信息数组,把每一条短信信息的getMessageBody()组装成短信内容

短信发送者号码可以通过首个短信信息对象的getOriginatingAddress()方法获得

对于双卡手机,还可以在广播到达的目的的捆中,通过捆绑。getint(‘安卓。电话。号外。slot _ INDEX ',-1),来获取卡槽的位置0为卡槽1,1为卡槽2。获取失败为-1。

注意:

MIUI等定制系统,申请权限可能不会弹窗,需要手动去设置中打开权限。

MIUI等定制系统,需打开应用的自启动功能,方可在短信到达时后台启动应用,运行广播接收器中相应逻辑。

广播接收器收到时方法的超时限制有10s,超过10s后系统会弹署弹窗。

Link to comment
Share on other sites