android - 'Невозможно разрешить метод getSystemService' - при регистрации тревоги при перезагрузке системы - PullRequest
0 голосов
/ 09 мая 2020

Я регистрирую тревогу при перезагрузке системы, так как тревога будет отключена после перезагрузки системы, но я получаю сообщение об ошибке «Не удается разрешить метод getSystemService ()», это синтаксическая ошибка ...

может В этом случае будет использоваться контекст, так как эта функция должна вызываться при перезагрузке телефона ...

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;



public class RebootBroadcast extends BroadcastReceiver {

    private static final String LOG_TAG = "MyBroadcast ";

    public  RebootBroadcast () {
    }

    @Override
    public void onReceive(Context context, Intent intent) {

        if (intent != null) {
            String action = intent.getAction();

            switch (action) {
                case Intent.ACTION_BOOT_COMPLETED:



                    PendingIntent pendingIntent = PendingIntent.getBroadcast(context,0,intent,0);
                    PendingIntent pendingIntent2 = PendingIntent.getBroadcast(context,1,intent,0);
                    AlarmManager alarmManager = (AlarmManager) context.getSystemService();
                    AlarmManager alarmManager2 = (AlarmManager) context.getSystemService();

                    long timeAtButtonClick = System.currentTimeMillis();
                    long tenSecondsInMillis = 1000 * 10;
                    long nextInMillis = 1000 * 20;


                    String myDate = "2020/05/09 18:00:00";
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
                    Date date = null;
                    try {
                        date = sdf.parse(myDate);
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                    long millis = date.getTime();

                    //long diff = millis - timeAtButtonClick;


                    alarmManager.set(AlarmManager.RTC_WAKEUP,   millis, pendingIntent);

                    break;
                default:
                    break;
            }
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 09 мая 2020

Вам нужно вызвать getSystemService в контексте, следовательно, почему он не работает в вашем ALARM_SERVICE. Вы можете сохранить контекст, который вы уже передали, как поле и вызвать для него getSystemService.

0 голосов
/ 09 мая 2020

Вам следует изменить на

(AlarmManager) context.getSystemService()
(AlarmManager) context.getSystemService(Context.ALARM_SERVICE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...