Я пытаюсь отправить SMS через службы, сопоставляя текущее время и дату со временем и датой, предоставленными пользователем. Значения для currentdate, currenttime, предоставленной пользователем даты («сравнить» в моем случае) и предоставленного пользователем времени (в моем случае - время выполнения) внутри функции onStartCommand все в порядке, поскольку я проверяю их через журнал.Но внутри onStartCommand, когда я использую оператор if () и хочу сравнить текущую дату и время с предоставленными пользователем временем и датой, он не выполняет функцию отправки сообщения.Без заявления if, если я хочу просто отправить SMS без сравнения или условия, это работает.Вы можете проверить код ниже.
public class Serviceclass extends Service {
Databaseclass dbobj;
String messagee;
String phonenumber;
String currenttime;
String comparetime;
String comparedate;
String currentdate;
@Override
public void onCreate() {
super.onCreate();
dbobj= new Databaseclass(getApplicationContext());
Cursor cursor = dbobj.getalldata();
cursor.moveToFirst();
final Calendar c = Calendar.getInstance();
int mYear = c.get(Calendar.YEAR);
int mMonth = c.get(Calendar.MONTH);
int mDay = c.get(Calendar.DAY_OF_MONTH);
int time = c.get(Calendar.HOUR_OF_DAY);
int mMinute = c.get(Calendar.MINUTE);
currentdate = mDay+"-"+(mMonth + 1)+"-"+mYear+"";
comparedate = cursor.getString(4);
currenttime = time + ":" + mMinute;
comparetime = cursor.getString(3);
phonenumber=cursor.getString(2);
messagee=cursor.getString(1);}
@Override
public IBinder onBind(Intent intent) {
return null; } @Override
public void onDestroy() {
super.onDestroy(); }
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("***time(Datetosend)", comparedate);
Log.i("***time2(currentdate)", currentdate);
Log.i("***time3(currenttime)", currenttime);
Log.i("***time4(timetosend)", comparetime);
Log.i("***time4(numbertosend)", phonenumber); if(currentdate.equals(comparedate) && currenttime.equals(comparetime)) {
SmsManager sms = SmsManager.getDefault();
List<String> messages = sms.divideMessage(messagee);
for (String msg : messages) {
PendingIntent sentIntent = PendingIntent.getBroadcast(this, 0, new Intent("SMS_SENT"), 0);
PendingIntent deliveredIntent = PendingIntent.getBroadcast(this, 0, new Intent("SMS_DELIVERED"), 0);
sms.sendTextMessage(phonenumber, null, msg, sentIntent, deliveredIntent);
Toast.makeText(getApplicationContext(), "Text send", Toast.LENGTH_SHORT).show();
Log.i("***time2(currentdate)", currentdate);
}}
return START_STICKY;
}}