Как отправить SMS в фоновом режиме? (API Min равно 22)

121
30 июля 2019, 05:50

Нужно чтобы программа работала в фоновом режиме и с определенным интервалом отправляла смс сообщения.
Вот код службы

public class PlayService extends Service {
    private final static int SEND_SMS_PERMISSION_REQ=1;
    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
    @Override
    public void onCreate() {
        super.onCreate();
        Toast.makeText(this, "Служба создана",
                Toast.LENGTH_SHORT).show();
        if(checkPermission(Manifest.permission.SEND_SMS))
        {
            SmsManager smsManager=SmsManager.getDefault();
            smsManager.sendTextMessage("*********",null,"sms",null,null);
        }
    }
    private boolean checkPermission(String sendSms) {
        int checkpermission= ContextCompat.checkSelfPermission(this,sendSms);
        return checkpermission== PackageManager.PERMISSION_GRANTED;
    }

    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode)
        {
            case SEND_SMS_PERMISSION_REQ:
                if(grantResults.length>0 &&(grantResults[0]==PackageManager.PERMISSION_GRANTED))
                {
                }
                break;
        }
    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Toast.makeText(this, "Служба запущена",
                Toast.LENGTH_SHORT).show();
        if(checkPermission(Manifest.permission.SEND_SMS))
        {
            SmsManager smsManager=SmsManager.getDefault();
            smsManager.sendTextMessage("",null,"sms",null,null);
        }
        return super.onStartCommand(intent, flags, startId);
    }
    @Override
    public void onDestroy() {
        super.onDestroy();
        Toast.makeText(this, "Служба остановлена",
                Toast.LENGTH_SHORT).show();
    }
}

MainActivity.java

public class MainActivity extends AppCompatActivity {
    private final static int SEND_SMS_PERMISSION_REQ=1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("SwipeRefreshLayout");
        final Button btnStart = (Button) findViewById(R.id.button_start);
        final Button btnStop = (Button) findViewById(R.id.button_stop);
        // запуск службы
        btnStart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // используем явный вызов службы
                startService(
                        new Intent(MainActivity.this, PlayService.class));
            }
        });
        // остановка службы
        btnStop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                stopService(
                        new Intent(MainActivity.this, PlayService.class));
            }
        });
    }
    private boolean checkPermission(String sendSms) {
        int checkpermission= ContextCompat.checkSelfPermission(this,sendSms);
        return checkpermission== PackageManager.PERMISSION_GRANTED;
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode)
        {
            case SEND_SMS_PERMISSION_REQ:
                if(grantResults.length>0 &&(grantResults[0]==PackageManager.PERMISSION_GRANTED))
                {
                }
                break;
        }
    }
}

Но смс не отправляет в чем ошибка?

READ ALSO
Парсинг строки в Java в HashMap

Парсинг строки в Java в HashMap

Как правильнее распарсить строкуСтрока вот такого типа: key:value|key:value|key:value

130
IllegalStateException Failed to load ApplicationContext custom handling

IllegalStateException Failed to load ApplicationContext custom handling

Возможно ли перехватить IllegalStateException в собственном обработчике исключений?Смысл в том, чтобы если в командной строке отсутствует имя файла,...

100
JavaFX круглый ProgressBar

JavaFX круглый ProgressBar

Суть вопроса такова, нужно сделать круглый прогресс барПробовал создать на основе ProgressIndicator, не выходит ничего нормального

123
как убрать отступ над шрифтом в input

как убрать отступ над шрифтом в input

Текст в input (засчет отступа над ним) расположен не по центруКак убрать отступы у шрифтов?

121