2011-02-11 11 views
11

Estoy desarrollando una aplicación para Android en la que quiero leer el mensaje entrante sin conocer al usuario. Siempre quiero ejecutar el comprobador de mensajes entrantes en segundo plano. Si se recibe un nuevo mensaje, quiero leer el contenido del mensaje. y que el mensaje contiene algunas palabras (contraseña) significa que quieren activar la aplicación¿Cómo leer el mensaje entrante usando el servicio en segundo plano en android?

favor a explicar cómo hacerlo con el código de ejemplo, porque soy nuevo en android

Respuesta

21

Tome un vistazo a BroadCastReceivers debe implementar y registrar un receptor para android.provider.Telephony.SMS_RECEIVED

Aquí hay un fragmento de código que le permite leer mensajes a medida que he.

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.telephony.SmsMessage; 
import android.widget.Toast; 

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++) 
      { 
       messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 
       strMessage += "SMS From: " + messages[i].getOriginatingAddress(); 
       strMessage += " : "; 
       strMessage += messages[i].getMessageBody(); 
       strMessage += "\n"; 
      } 

      Toast.makeText(context, strMessage, Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

Y aquí lo que hay que añadir a su archivo AndroidManifest.xml:

<uses-permission android:name="android.permission.RECEIVE_SMS" /> 

<receiver android:name=".SMSReceiver"> 
    <intent-filter> 
     <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 
    </intent-filter> 
</receiver> 
+1

No creo, su código funcionará como un servicio, aquí es mismo problema, http: // stackoverflow.com/questions/9029040/how-to-run-an-android-app-in-background –

+0

esto no es un servicio. – squid

Cuestiones relacionadas