Can i automatically send SMS (Without the user need to approve)

前端 未结 5 635
迷失自我
迷失自我 2020-12-02 08:36

I\'m rather new to Android. Im trying to send SMS from Android application. When using the SMS Intent the SMS window opens and the user needs to approve the SMS and send i

5条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-02 08:56

    //sent sms
    private void sendSMS(String phoneNumber, String message) {
        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 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 sms = SmsManager.getDefault();
        sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
    }
    

    you can use this complete function

提交回复
热议问题