首页 > 解决方案 > 如何让我的应用在给定时间发送定期短信?

问题描述

我正在使用带有 java 的 android studio。

我设法使用 AlarmManager 在给定时间定期获取通知。但这可能与 SmsManager 一起做吗?有人对如何做有任何提示吗?

我是如何使用 AlarmManager 的

Calendar c = Calendar.getInstance();
        c.setTimeInMillis(System.currentTimeMillis());
        c.set(Calendar.HOUR_OF_DAY,18);
        c.set(Calendar.MINUTE,4);
        c.set(Calendar.SECOND,2);


AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
        alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),60*1000,null);

当前短信管理器

SmsManager sms = SmsManager.getDefault();

sms.sendTextMessage(123, null, "Text", null, null);

标签: javaandroid

解决方案


我不知道 android studio 是否有一种具体的方法来做到这一点,但如果你使用的是 java,你可以使用 ScheduledExecutorService 和一个定期运行你的任务的线程。一个例子应该是这样的:

ScheduledExecutorService executor =
Executor.newScheduledThreadPool(1);
Runnable task = ...;
executor.scheduleWithFixedRate(task, 10, 10, SECONDS);

在这里你有更多关于它的文档。https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html


推荐阅读