SMSMessage createFromPdu具有额外的参数格式 [英] SMSMessage createFromPdu with extra parameter format
问题描述
我应该将什么作为第二个参数<"format">传递给createFromPdu()方法,
What should I pass as second parameter<"format"> to createFromPdu() method,
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i], format);
在最新版本的android中,不建议使用以下代码行,
As in latest version of android following line of code is deprecated,
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
我已经在Internet上进行搜索,但对我而言尚不清楚.我也读过android doc,
I have searched on Internet but nothing was clear to me. I have read into android doc too,
http://developer.android.com/reference/android/telephony/SmsMessage.html#createFromPdu(byte [] ,java.lang.String)
http://developer.android.com/reference/android/telephony/SmsMessage.html#createFromPdu(byte[], java.lang.String)
推荐答案
基本上,这是为Android Marshmallow引入的,它为3GPP格式的GSM/UMTS/LTE消息支持"3gpp",为3GPP2的CDMA/LTE消息支持"3gpp2"格式.
Basically this was introduced for Android Marshmallow to support "3gpp" for GSM/UMTS/LTE messages in 3GPP format or "3gpp2" for CDMA/LTE messages in 3GPP2 format.
以下是SMSReceiver的完整示例:
Here is the full example for SMSReceiver:
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();
}
}
}
这篇关于SMSMessage createFromPdu具有额外的参数格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!