在Android中从SMS获取收件人号码

Raj*_*ran 5 sms android

这可能听起来很奇怪,但我想知道我在手机上收到的短信号码.我可以获得内部SIM卡的手机号码telephonyManager.getLine1Number()(虽然不能保证我会得到电话号码).但是,如果我手机中有两个SIM卡,那该怎么办?因为telephonyManager.getLine1Number()只会返回第一个/活动SIM卡的SIM卡信息.

编辑:我也试图获得我收到任何短信时得到的所有信息,但我找不到任何有趣的东西.

那么有没有办法从收到的短信中获取收件人的号码(而不是发件人的号码)?

RKS*_*RKS -2

试试这个代码,

public class SmsReceiver extends BroadcastReceiver {    
Run Code Online (Sandbox Code Playgroud)

@覆盖 公共无效onReceive(上下文上下文,意图意图){

Bundle extras = intent.getExtras(); if (extras == null) return; Object[] pdus = (Object[]) extras.get("pdus"); String[] fromAddress = new String[pdus.length]; SmsMessage[] message = new SmsMessage[pdus.length]; for (int i = 0; i < pdus.length; i++) { message[i] = SmsMessage.createFromPdu((byte[])pdus[i]); fromAddress[i] = message[i].getOriginatingAddress(); // it will give the address from where SMS was originated. }
Run Code Online (Sandbox Code Playgroud)

}