简体   繁体   English

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

[英]SMS send is not working on real device?

on emulator I test app and it's working, but when I put on real device keep telling me that: SMS sending faild would you like to try again. 在模拟器上我测试应用程序,它的工作,但当我穿上真正的设备继续告诉我:短信发送faild你想再试一次。 Some numbers looks like this +381624578588 or +38163-12-345-67, also I try only with 0629876543, and always the same thing, those are exemples but I tried on real numbers. 有些数字看起来像+381624578588或+ 38163-12-345-67,我也只尝试使用0629876543,并且总是相同的,这些都是例子,但我尝试了实数。 please help. 请帮忙。

here is my code for sms method: 这是我的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);          
}

check if you have taken the following permission in your manifest file : 检查您是否在清单文件中获得了以下权限:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM