2012-02-15 2 views
0

나는 SMS를 받고 다음과 같은 SMS를 보낸 사람에게 다시 보내는 코드를 작성했습니다. 코드가 에뮬레이터에서 완벽하게 실행되고 있지만 모바일에서 코드를 실행하면 SMS를 보내고 보내지 않습니다.앱이 SMS를 보내고받지 않습니다.

public class SmsReceiver extends BroadcastReceiver 
{ 
    public void onReceive(final Context context, Intent intent) 
    { 
     //---get the SMS message passed in--- 
     Bundle bundle = intent.getExtras();   
     SmsMessage[] msgs = null; 

     String messageRecieved ="";  
     String result=""; 
     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]);     
      messageRecieved += msgs[i].getMessageBody().toString(); 
     } 

     //---display the new SMS message--- 
     Toast.makeText(context, "Sms Recieved: "+messageRecieved, 
       Toast.LENGTH_SHORT).show(); 

     sms.sendTextMessage(sendersPhoneNumber, null, messageRecieved, null, null); 
     Toast.makeText(context, "Sms sent back to Sender With Requested Contacts" 
      ,Toast.LENGTH_LONG).show(); 

수신자를 매니페스트에 적절한 권한으로 등록했습니다. 에뮬레이터에서는 정상적으로 작동하지만 전화기에서는 정상적으로 작동하지 않습니다.

토스트가 표시되지 않습니다.

+0

유용한 정보 [http://mobiforge.com/developing/story/sms-messaging-android](hobp://mobiforge.com/developing/story/sms-messaging-android) – NagarjunaReddy

+0

여전히 그렇지 않습니다. 작동 –

+0

네이티브 android 메시징 앱을 사용하는 전화입니까? 아니면 다른 타사 응용 프로그램을 통해 전달되는 메시징입니까? 타사 응용 프로그램 인 경우 메시지는 콘텐츠 공급자를 우회합니다. 따라서 방송 수신기는 작동하지 않습니다. – user936414

답변

0

실제 장치의 문제로 메모리 부족 문제 일 수 있습니다. 휴대 전화에 큰 응용 프로그램을 설치했거나 메모리가 부족합니다. SMS는 약 20 ~ 30 KB 밖에 안되지만 SMS 수신을 위해 휴대 전화에 20 MB 이상의 공간이 필요할 때도 있습니다.

이 문제를 해결하려면 휴대 전화 메모리에서 SD 카드로 데이터를 이동해야합니다.

관련 문제