Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Call Requires API Level 23

Boa noite.

Ao tentar criar o receiver para SMS

public class SMSReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Object[] pdus = (Object[]) intent.getSerializableExtra("pdus");
        byte[] pdu = (byte[]) pdus[0];
        String formato = (String) intent.getSerializableExtra("format");
        SmsMessage sms = SmsMessage.createFromPdu(pdu, formato);
        Toast.makeText(context, "Chegou SMS", Toast.LENGTH_SHORT).show();
    }

}

Há um erro:

Call requires API Level 23 (current min is 14)

Entendi que teria que declarar no Manifest que o app será instalado a partir da API 23, mas nesse caso eu perderia um certo publico...

Há alguma forma de fazer com que esse código funcione a partir da 14 ?

Grato

2 respostas
solução!

Olá!

Você pode manter o código para a versão, a partir da API 23, e implementar o código que está Depreciado para versões antigas a ela. Da seguinte forma:

SmsMessage sms = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
    sms = SmsMessage.createFromPdu(pdu, formato);
} else {
    sms = SmsMessage.createFromPdu(pdu);
}

Olá Rodrigo !!!

Cara valeu funcionou perfeitamente !!!