2012-04-17 3 views
0

전자 메일 서비스에서 보낸 메시지의 "From"태그가 나타납니다. [email protected]에는 다른 "From"태그가 있습니다. 그런 다음 SMS를 통해 메시지가 수신되면 메시지 세부 정보가 표시됩니다. tmomail.net을 통해 SMS 메시지를받을 수 있기를 원하지만 누락 된 링크는 전화가 "보낸 사람"태그와 정확히 일치하는지에 달려 있습니다. 다른 휴대 전화에서 SMS를 성공적으로 수신했으며 방송 수신자가이를 수신합니다. 그러나 tmomail.net 통해 이러한 텍스트를 받기 위해 "보낸 사람"필터를 올바르게 설정할 수 없습니다. 자신의 프로젝트에서 도움을 얻을 수있는 모든 노블 안드로이드 마법사에 대해 미리 감사드립니다. 이 내 권한입니다tmomail.net을 통해 보낸 sms의 "From"태그

<receiver android:name=".SmsReceiver" > 
      <intent-filter android:priority="99999999" > 
       <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
      </intent-filter> 
     </receiver> 

: 다음은 ...

public class SmsReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     // ---get the SMS message passed in--- 

     Bundle bundle = intent.getExtras(); 
     SmsMessage[] msgs = null; 
     String str = ""; 

     Log.d("SMS_Project", "Beginning fired!"); 

     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]); 

       String mFrom = msgs[i].getOriginatingAddress(); 
       String mBody = msgs[i].getMessageBody().toString(); 

       Log.d("SMS_Project", "The From tag follows this line"); 

       if (mFrom.equals("[email protected]")) { 

        Log.d("SMS_Project", "above is the from tag"); 

        if (mBody.indexOf("1") == 0) { 
         str += "SMS from '" + mFrom + "'"; 
         str += " :"; 
         str += mBody;     

         str += "\n"; 

         // ---display the new SMS message--- 
         Log.d("SMS_Project", "Toast anyone?"); 
         Toast.makeText(context, str, Toast.LENGTH_LONG).show(); 
         this.abortBroadcast(); 

        } 
       } 
      } 
     } 
    Log.d("SMS_Project", "No toast yet");} 

매니페스트 정보 코드입니다

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

내가 번역하는 abilty의 전화 부족 될 수있는 propblem 의심 정당한 SMS로 전자 우편. 아마도 멀티미디어 메시지 유형일까요? 나는 이것이 갈 때까지 푸른 빗질을 아무 곳에도 계속 두지 않을 것입니다. 지금까지 내가 가지고있는 것에 대해 질문이 있으시면. 저에게 알려주세요. 감사.

+0

아무도 이런 문제가 발생하지 않았습니까? – Ccorock

답변

0

내 과거의 턱을 훔치는 것을 모두 무시하십시오.이 답변은 getEmailFrom() 함수를 사용하는 것입니다.

예 :

당신이 이메일에서 정확하게 위치를 식별 할 수 있도록 이것은 로그 캣을 포함
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 

String mFrom = msgs[i].getOriginatingAddress(); 
String mBody = msgs[i].getMessageBody().toString(); 
String mEmail = msgs[i].getEmailFrom().toString(); 
*Boolean mSomething = msgs[i].isEmail();* 

Log.d("SMS_Project_From", mFrom); 
Log.d("SMS_Project_mBody", mBody); 
*Log.d("SMS_Project_Email", mEmail);* 

.

0

나는 mFrom 문자열과 Log.d를 통해 확인하려고합니다. 누군가를 위해 다른

(mFrom.equals("[email protected]")) 

는 희망이 태그 "에서"나에게 정확하고 일관된을 줄 것이다

// 바로 위의
Log.d("SMS_Project", mFrom); 

...

// 삽입 ...이 임을 발생 결과를 정확히 파악하기 위해서. 이 간단한 테스트를 생각해 보면 오랜 시간이 걸렸습니다. LogCat을 올바르게 디버그하고 활용하는 방법을 배우는 것은 복사/붙여 넣기 프로를 능가하는 모든 사람들에게 필수적입니다.

+0

다음 방법을 통해 다음을 수행 할 수 없습니다 ... 주소는 네 자리 숫자 ... EX입니다. 4208, 3906, 4287, 4152. 분명히 Tmomail은 임의의 수의 서버를 통해이 서버를 라우팅하고 예측할 수없는 숫자를 뱉어냅니다. Arg. – Ccorock