我已经编写了以下代码来接收短信并将相同的短信发送给发件人。 代码在模拟器中运行完美,但是当我在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();
我已经在清单中注册了适当的许可。 它可以在模拟器中正常工作,但不能在手机上工作。
它没有显示吐司。
答案 0 :(得分:0)
您的真实设备的问题可能是内存不足问题。您已经在手机中安装了一些大型应用程序,或者内存已耗尽堆栈。 我们都知道短信只有大约20或30 KB,但有时我们的手机需要超过20 MB的空间来接收短信。
此问题的解决方案是将数据从手机记忆库移至SD卡。