2016-08-16 2 views
-1

Я использую диспетчер SMS для отправки SMS с отправленным ожидающим намерением и досрочным ожиданием намерения. Мое приложение использует только SMS посылая функцию, и я также разместил это разрешениеМенеджер Sms не работает

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

Вот мой код в OnAcitivityCreated методы фрагмента в:

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

    PendingIntent sentPI = PendingIntent.getBroadcast(getActivity().getApplicationContext(), 0, 
      new Intent(SENT), 0); 

    PendingIntent deliveredPI = PendingIntent.getBroadcast(getActivity().getApplicationContext(), 0, 
      new Intent(DELIVERED), 0); 
    //PendingIntent sentPI; 
    //String SENT = "SMS_SENT"; 
    // sentPI = PendingIntent.getBroadcast(getActivity().getApplicationContext(), 0,new Intent(getActivity().getApplicationContext(),MainActivity.class), 0); 

    getActivity().registerReceiver(new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      switch (getResultCode()) { 
       case Activity.RESULT_OK: 
        Toast.makeText(getActivity().getApplicationContext(), "SMS sent", 
          Toast.LENGTH_SHORT).show(); 
        break; 
       case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
        Toast.makeText(getActivity().getApplicationContext(), "Generic failure", 
          Toast.LENGTH_SHORT).show(); 
        break; 
       case SmsManager.RESULT_ERROR_NO_SERVICE: 
        Toast.makeText(getActivity().getApplicationContext(), "No service", 
          Toast.LENGTH_SHORT).show(); 
        break; 
       case SmsManager.RESULT_ERROR_NULL_PDU: 
        Toast.makeText(getActivity().getApplicationContext(), "Null PDU", 
          Toast.LENGTH_SHORT).show(); 
        break; 
       case SmsManager.RESULT_ERROR_RADIO_OFF: 
        Toast.makeText(getActivity().getApplicationContext(), "Radio off", 
          Toast.LENGTH_SHORT).show(); 
        break; 
      } 

     } 
    },new IntentFilter(SENT)); 

    SmsManager smsmanager = SmsManager.getDefault(); 
    smsmanager.sendTextMessage("+923349521400", null, message, sentPI, deliveredPI); 
    Toast.makeText(getActivity(), "Sms sent!", Toast.LENGTH_LONG).show(); 
} 
catch (Exception e) 
{ 
    Toast.makeText(getActivity(), "failure", Toast.LENGTH_LONG).show(); 

} 
+0

Код ничего не отвечает или вы получаете какой-либо сбой или что-то, что вы хотели бы, позвольте нам. какая часть не работает? – Smit

+0

Код ничего не делает. –

ответ

0

Надежда этот код поможет вам :)

public class MainActivity extends Activity { 
    private int mMessageSentParts; 
    private int mMessageSentTotalParts; 
    private int mMessageSentCount; 
    String SENT = "SMS_SENT"; 
    String DELIVERED = "SMS_DELIVERED"; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Button button=(Button)findViewById(R.id.button1); 
     button.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       String phoneNumber = "0000000000"; 
       String message = "Hello World!"; 
       sendSMS(phoneNumber,message); 


      } 
     }); 



    } 


    public void sendSMS(String phoneNumber,String message) { 
     SmsManager smsManager = SmsManager.getDefault(); 


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

      SmsManager sms = SmsManager.getDefault(); 
      ArrayList<String> parts = sms.divideMessage(message); 
      int messageCount = parts.size(); 

      Log.i("Message Count", "Message Count: " + messageCount); 

      ArrayList<PendingIntent> deliveryIntents = new ArrayList<PendingIntent>(); 
      ArrayList<PendingIntent> sentIntents = new ArrayList<PendingIntent>(); 

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

      for (int j = 0; j < messageCount; j++) { 
       sentIntents.add(sentPI); 
       deliveryIntents.add(deliveredPI); 
      } 

      // ---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 arg0, Intent arg1) { 
        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.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI); 
      /* sms.sendMultipartTextMessage(phoneNumber, null, parts, sentIntents, deliveryIntents); */ 
    } 
} 
Смежные вопросы