새로 수신되는 SMS 메시지를 잡을 수 있습니다. 그러나 멀티 파트 메시지 인 경우 브로드 캐스트 수신기는 여러 번 메시지의 모든 부분을 수신합니다.수신 멀티 파트 SMS 메시지 청취
기본 메시지 앱처럼 전체 메시지를 한 번에받을 수있는 방법이 있습니까?
새로 수신되는 SMS 메시지를 잡을 수 있습니다. 그러나 멀티 파트 메시지 인 경우 브로드 캐스트 수신기는 여러 번 메시지의 모든 부분을 수신합니다.수신 멀티 파트 SMS 메시지 청취
기본 메시지 앱처럼 전체 메시지를 한 번에받을 수있는 방법이 있습니까?
거룩한 ...!
은 안드로이드 소스 (this file)을 읽은 후, 나는 여기에
내 수신기입니다 ...이 바보 같은 질문은 실현 :@Override
public void onReceive(Context context, Intent intent) {
Log.d(ClassName, "received SMS");
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
// here is what I need, just combine them all :-)
final SmsMessage[] messages = new SmsMessage[pdus.length];
Log.d(ClassName, String.format("message count = %s", messages.length));
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
}
}
}// onReceive()
죄송합니다 ... 내가 너무 게으른 내 코드 좀 봐. 나는 이미 한 번에 모든 메시지를 받았습니다.
여기에 대한 답변을 확인하십시오. http://stackoverflow.com/questions/7469881/broadcastreceiver-for-multipart-sms 각 인 텐트에는 모든 부분을 함께 포함하는 단일 메시지가 들어 있습니다. 쉽다. –
기본 메시지 앱이 전체 메시지를 한 번에 받음을 어떻게 알 수 있습니까? 나는 그것들을 따로 따로 받고 그것들을 내부적으로 결합 시킨다고 생각한다. – slayton
@slayton 감사합니다. 그래서 나는 datetime을 비교하고 모든 부분을 하나로 결합 할 수 있다고 생각합니다. 이 메시지가 큰 메시지라는 것을 나타내는 플래그가 어딘가에 있다고 생각합니까? –
나는 안다. 그러나 당신은 언제나 안드로이드 소스를보고 그들이 어떻게하는지 볼 수있다. – slayton