2012-04-07 6 views
0

übereinstimmt Wenn ich eine SMS an jemanden sende, der "UPDATE" sagt. damit ich den Standort dieser Person ermitteln kann. Ich werde einen Broadcast-Empfänger machen, der aktiv wird, wenn eine SMS eintrifft. Wenn es mit UPDATE übereinstimmt, wird der Standort des anderen Benutzers gesendet.Den Speicherort von somone erhalten, wenn der SMS-Inhalt mit

Der Sendeempfänger.

public void onReceive(Context context, Intent intent) 
{ 
//this stops notifications to others 
this.abortBroadcast(); 

//---get the SMS message passed in--- 
Bundle bundle = intent.getExtras(); 
SmsMessage[] msgs = null; 
String str = "";    
if (bundle != null) 
{ 
//---retrieve the SMS message received--- 
Object[] pdus = (Object[]) bundle.get("pdus"); 
msgs = new SmsMessage[pdus.length];    
for (int i=0; i<msgs.length; i++){ 
    msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);     
    str += "SMS from " + msgs[i].getOriginatingAddress(); 
    from = msgs[i].getOriginatingAddress(); 
    str += " :"; 
    str += msgs[i].getMessageBody().toString(); 
    msg = msgs[i].getMessageBody().toString(); 
    str += "\n"; 
} 
if(checksomething){ 
    //make your actions 
    //and no alert notification and sms not in inbox 
} 
else{ 
    //continue the normal process of sms and will get alert and reaches inbox 
    this.clearAbortBroadcast(); 
} 
    } 
+1

Haben Sie eine Frage haben? Du hast nichts gefragt. – Kuffs

+0

meine Frage ist, wie ich den Sms-Inhalt (hoffe, dass ich wat ich meine durch Inhalt) übereinstimmen, wenn es UPDATE entspricht, dann sollte der Standort der Person, die Sie die SMS gesendet haben, –

Antwort

0

Benötigen Sie einen Service für Ihre SMS ????

wenn ja

in manifest:

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

und Ihre Dienste:

import android.app.Service; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.content.IntentFilter; 
import android.os.Bundle; 
import android.os.IBinder; 
import android.telephony.SmsMessage; 
import android.widget.Toast; 

public class SrvSmsListener extends Service { 

    private BroadcastReceiver IncomingSMSReceiver = new BroadcastReceiver() { 
     private static final String SMS_RECEIVED = 
       "android.provider.Telephony.SMS_RECEIVED"; 

     @Override 
     public void onReceive(Context _context, Intent _intent) { 
      if (_intent.getAction().equals(SMS_RECEIVED)) { 
       Bundle bundle = _intent.getExtras(); 
       if (bundle != null) { 
        Object[] pdus = (Object[]) bundle.get("pdus"); 

        SmsMessage[] messages = new SmsMessage[pdus.length]; 
        for (int i = 0; i < pdus.length; i++) 
         messages[i] = SmsMessage 
           .createFromPdu((byte[]) pdus[i]); 
        for (SmsMessage message : messages) { 
         String strPhoneNo = message.getOriginatingAddress(); 
         String msg = message.getMessageBody(); 

         if (msg.startsWith("UPDATE")) 
         { 
          // this stops notifications to others 
          this.abortBroadcast(); 
          // do what you want 
         } 
        } 
       } 
      } 
     } 
    }; 

    @Override 
    public IBinder onBind(Intent arg0) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public void onCreate() { 
     final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; 
     IntentFilter filter = new IntentFilter(SMS_RECEIVED); 
     BroadcastReceiver receiver = IncomingSMSReceiver; 
     registerReceiver(receiver, filter); 
    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     return super.onStartCommand(intent, flags, startId); 
    } 

    @Override 
    public void onDestroy() { 
     if (IncomingSMSReceiver != null) 
     { 
      unregisterReceiver(IncomingSMSReceiver); 
     } 
    } 
} 
+0

erhalten wird dies mir den Speicherort des anderen Benutzers wenn der SMS-Inhalt stimmt überein ... –

+0

dieses Beispiel benachrichtigen Sie Wenn die SMS, die vom Gerät empfangen wird, mit "UPDATE" – breceivemail

+0

ohk .. Danke !!! –

Verwandte Themen