短信发送无法在真实设备上运行?

时间:2012-02-02 13:13:14

标签: java android

在模拟器上我测试应用程序并且它正在工作,但是当我穿上真正的设备继续告诉我:短信发送faild你想再试一次。 有些数字看起来像+381624578588或+ 38163-12-345-67,我也只尝试使用0629876543,并且总是相同的,这些都是例子,但我尝试了实数。 请帮忙。

这是我的sms方法代码:

private void sendPoruka(String ime2, String napisaniTekst2) {

  String SENT = "SMS_SENT";
  String DELIVERED = "SMS_DELIVERED";

  PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT), 0);     
  PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,new Intent(DELIVERED), 0);     

   //---when the SMS has been sent---
      registerReceiver(new BroadcastReceiver(){
      @Override
        public void onReceive(Context arg0, Intent arg1) {
          switch (getResultCode())
           {
            case Activity.RESULT_OK:
            Toast.makeText(getBaseContext(), "SMS sent", Toast.LENGTH_SHORT).show();
            break;

            case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
            Toast.makeText(getBaseContext(), "Generic failure", Toast.LENGTH_SHORT).show();
            break;

            case SmsManager.RESULT_ERROR_NO_SERVICE:
            Toast.makeText(getBaseContext(), "No service",Toast.LENGTH_SHORT).show();
            break;

            case SmsManager.RESULT_ERROR_NULL_PDU:
            Toast.makeText(getBaseContext(), "Null PDU",Toast.LENGTH_SHORT).show();
            break;

            case SmsManager.RESULT_ERROR_RADIO_OFF:
            Toast.makeText(getBaseContext(), "Radio off",  Toast.LENGTH_SHORT).show();
            break;
          }
        }
      }, new IntentFilter(SENT)); 

  //---when the SMS has been delivered---
     registerReceiver(new BroadcastReceiver(){
     @Override
       public void onReceive(Context context, Intent intent) {
       // TODO Auto-generated method stub
       switch (getResultCode())
       {
        case Activity.RESULT_OK:
        Toast.makeText(getBaseContext(), "SMS delivered", Toast.LENGTH_SHORT).show();
        break;

        case Activity.RESULT_CANCELED:
        Toast.makeText(getBaseContext(), "SMS not delivered",Toast.LENGTH_SHORT).show();
        break;                        
          }
       }    
    }, new IntentFilter(DELIVERED));

     SmsManager sms = SmsManager.getDefault();
     sms.sendTextMessage(ime2, null, napisaniTekst2, sentPI, deliveredPI);          
}

1 个答案:

答案 0 :(得分:2)

检查您是否在清单文件中获得了以下权限:

<uses-permission android:name="android.permission.SEND_SMS"/>
   <uses-permission android:name="android.permission.RECEIVE_SMS" />