最近学习了android6.0下的短信功能,发现《第一行代码》一书中的实现代码中使用的createFromPdu(byte[] pdu)函数,在API23中已经被弃用,取而代之的是createFromPdu(byte[] pdu, String format)(查看)。看起来区别不大,但是为了找这个format参数的使用方法,还是费了挺大功夫的。接下来介绍具体用法。
当我们需要使用createFromPdu函数时,其中的format参数可以使用以下方法赋值:
<pre name="code" class="java"><span style="font-size:14px;"> String format = intent.getStringExtra("format");</span>
下面是完整代码(已通过测试,已上传github)
MainActivity.java:
<span style="font-size:14px;">package com.example.administrator.smstest;
import android.Manifest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private TextView sender;
private TextView content;
private IntentFilter receiveFilter;
private MessageReceiver messageReceive