Pegando Dados de um sms

Bom dia pessoal,

preciso pega duas informações que sao recebidas através do sms, Latitude e longitude e com esses dados eu colocar no maps teria como ?

Ola,
Para pegar o sms voce precisa criar um BroadCastReceiver.

primero voce precisa configurar no manifest as permissoes de sms e configurar o receiver para que o aplicativo receba copias dos sms recebidos:

acima da tag application
<uses-permission android:name="android.permission.RECIVE_SMS"/>

e dentro da tag application
<receiver android:name=".receiver.SMSReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>

Apos configurar o manifest criar a classe que recebe o sms

public class SMSReciver extends BroadCastReceiver{
    @Override
    onReceive(Context context, Intent intent){
        Object[] pdus = (Object[]) intent.getSerializableExtra("pdus");
        String formato = (String) intent.getSerializableExtra("format")
        SmsMesage sms = SmsMessage.createFromPdu((byte[]) pdus[0],formato);
    }
}

cada posição da array pdus representa um sms, sendo necessario um for para verificar todos, com essa classe mesmo o aplicativo estando em segundo plano o comportamento dentro do metodo onReceive sera executado sempre que chegar um sms.

Obtendo o objeto sms basta tratar conforme desejado: https://developer.android.com/reference/android/telephony/SmsMessage.html

Para iniciar o mapa:

Intent intentMapa = new Intent(ACTION.VIEW);
intentMapa.setData("geo:0,0");//latitude,longitude
startActivity(intentMapa);
1 curtida

Vlw conseguir!!!