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); */ 
    } 
} 
관련 문제