2012-02-02 59 views
0

模擬器我測試應用程序,它的工作,但是當我穿上真正的設備不斷告訴我:短信發送faild你想再試一次。 有些數字看起來像這樣+381624578588或+ 38163-12-345-67,我也只嘗試0629876543,總是一樣的東西,這些都是例證,但我嘗試了實數。 請幫忙。短信發送不在真實設備上工作?

這裏是我的手機短信的方法代碼:

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

回答

2

檢查是否已採取了下列權限在manifest文件:

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

我有 <使用許可權的android:NAME =」 android.permission.SEND_SMS「/> 但它是必要的... permission.INTERNET? – Wolf87 2012-02-02 13:23:00

+0

不,不需要互聯網許可。 – JoxTraex 2012-02-02 13:25:43

+0

我編輯了我的答案了一下...... !!! – 2012-02-02 13:26:21