应用程序不发送和接收短信

时间:2012-02-15 10:27:16

标签: android

我已经编写了以下代码来接收短信并将相同的短信发送给发件人。 代码在模拟器中运行完美,但是当我在Mobile中运行代码时,它不会接收和发送短信。

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

我已经在清单中注册了适当的许可。 它可以在模拟器中正常工作,但不能在手机上工作。

它没有显示吐司。

1 个答案:

答案 0 :(得分:0)

您的真实设备的问题可能是内存不足问题。您已经在手机中安装了一些大型应用程序,或者内存已耗尽堆栈。 我们都知道短信只有大约20或30 KB,但有时我们的手机需要超过20 MB的空间来接收短信。

此问题的解决方案是将数据从手机记忆库移至SD卡。