2011-04-28 3 views
3

현재 SMS 메시지를 보내거나받는 응용 프로그램을 작성하고 있습니다.Android 용 PDU 만들기

단위 테스트 목적으로 프로그래밍 방식으로 PDU를 만들어야합니다. 디코딩은 매우 쉽습니다 : programamtically PDU를 생성 에 적절한 방법은

Bundle bundle = intent.getExtras(); 
if (bundle != null) { 
    /* Get all messages contained in the Intent*/ 
    Object[] pdusObj = (Object[]) bundle.get("pdus"); 
    for (int i = 0; i < pdusObj.length; i++) { 
     SmsMessage msg = SmsMessage.createFromPdu((byte[])pdusObj[i]); 
    } 
} 

있습니까?

+0

안드로이드가 처리하기 때문에 PDU를 단위 테스트하는 이유가 명확하지 않습니다. 너 진짜로 논리를 시험하고 googles를 시험하고 싶지 않는가? – Jim

+0

누구의 논리인지는 문제가 아닙니다. 환경 (모바일 서비스 공급자 또는 장치)이 아닐지라도 응용 프로그램이 올바르게 작동하는지 테스트하고 있습니다. 현재, 나는 똑바로 접근 방식을 사용하여 테스트 중이며 Intent 및 적절한 코드가 첨부 된 올바른 코드가 제대로 작동하도록 'android.provider.Telephony.SMS_RECEIVED'브로드 캐스트를 시작하고 싶습니다. –

+0

@ ibo.ezhe createFromPDU() 메소드로 해독 할 수있는 프로그래밍 방식으로 PDU를 성공적으로 만들었습니까? 나는이 문제를 일주일 동안 춤 췄다. 나는 그것에 50 현상금과 같은 질문을 가지고 - http://stackoverflow.com/q/12335642/ – StrikeForceZero

답변

9

일반적으로 PDU에는 코드가 하드 코딩되어 있습니다. 비슷한 :

String pdu = "07914151551512f2040B916105551511f100006060605130308A04D4F29C0E"; 
SmsMessage sms = SmsMessage.createFromPdu(HexDump.hexStringToByteArray(pdu)); 

Here's이 작업을 수행하는 방법에 대한 완전한 예제.

이제 "테스트를 위해 어디에서 PDU를 찾을 수 있습니까?"라고 묻습니다. 당신이 그것을 생성합니다. 예를 들어 this 온라인 서비스를 사용할 수 있습니다.

나는 이것이 도움이되기를 바랍니다 !!

+0

감사, 현상금이 자동으로 전송됩니까? –

+0

작은 초록색 체크 표시가 자동으로 표시됩니다. 그리고 감사합니다! – Emmanuel

+0

링크를 업데이트하십시오 ... 죽었습니다 – mboy

관련 문제