SmsMessage 消息 = SmsMessage.createFromPdu((byte[]) obj);
//在上面的代码中,我得到了关于“createFromPdu()”方法的一行。 //所以我应该添加任何依赖项或任何其他解决方案。请帮助我
我应该添加或更改哪些依赖项?
基本上这是为 Android Marshmallow 引入的,以支持 3GPP 格式的 GSM/UMTS/LTE 消息的“3gpp”或 3GPP2 格式的 CDMA/LTE 消息的“3gpp2”。
这是一个简单的例子,希望对你有帮助
public class SMSReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent)
{
Bundle myBundle = intent.getExtras();
SmsMessage [] messages = null;
String strMessage = "";
if (myBundle != null)
{
Object [] pdus = (Object[]) myBundle.get("pdus");
messages = new SmsMessage[pdus.length];
for (int i = 0; i < messages.length; i++)
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
String format = myBundle.getString("format");
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i], format);
}
else {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
}
strMessage += "SMS From: " + messages[i].getOriginatingAddress();
strMessage += " : ";
strMessage += messages[i].getMessageBody();
strMessage += "\n";
}
Log.e("SMS", strMessage);
Toast.makeText(context, strMessage, Toast.LENGTH_SHORT).show();
}
}
}