2012-12-11 4 views
-2

메시지를 수신하는 동안 SMS 발신자의 전화 번호를 얻으려는 사람에게 다운로드 코드 또는 유용한 링크를 제공하십시오. 나는 많은 것을 시도했다.안드로이드에서받은 SMS에서 SMS 발신자의 전화 번호를 얻는 방법에 대한 코드

+0

당신이 –

+0

을 시도 코드를 공유하시기 바랍니다 솔루션에 당신을지도의 전화 번호를 반환합니다 지금까지 시도한 것을 설명하십시오. 그리고 http://developer.android.com/reference/android/telephony/SmsMessage.html을 찾았습니까? – Geoffroy

+0

이 링크 http://www.apriorit.com/our-company/dev-blog/227-handle-sms-on-android를 참조하십시오. 도움이되기를 바랍니다. – curious

답변

0

이보십시오, 여기 messages[0].getOriginatingAddress()는 SMS를 보낸 사람

public void onReceive(Context context, Intent intent) { 
      Log.i(TAG, "Intent recieved: " + intent.getAction()); 

      if (intent.getAction() == SMS_RECEIVED) { 
       Bundle bundle = intent.getExtras(); 
       if (bundle != null) { 
        Object[] pdus = (Object[])bundle.get("pdus"); 
        final SmsMessage[] messages = new SmsMessage[pdus.length]; 
        for (int i = 0; i < pdus.length; i++) { 
         messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]); 
        } 
        if (messages.length > -1) { 
         Log.i(TAG, "Message recieved: " + messages[0].getMessageBody()); 
         Log.i(TAG, "Message recieved: " + messages[0].getOriginatingAddress()); 
        } 
       } 
      } 
     } 

그것이 작동 희망, 또는

0
@Override 
public void onReceive(Context ctx, Intent intent) { 
    //Log.d(Params.LOG_APP, "INCOMING SMS...."); 



    Bundle extras = intent.getExtras(); 

    if (extras == null) 
     return ; 

    Object[] dataArr = (Object[]) extras.get("pdus"); 
    //Log.d(Params.LOG_APP, "dataArr ["+dataArr+"]"); 



    for (Object data: dataArr) { 
     SmsMessage sms = SmsMessage.createFromPdu((byte[]) data); 
     //Log.d(Params.LOG_APP, "SMS ["+sms+"]"); 
     String body = sms.getMessageBody(); 
     String sender = sms.getOriginatingAddress(); 

     long time = sms.getTimestampMillis(); 

    } 

}