1 /* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.alarmmanager.alarmtestapp.cts; 18 19 import android.alarmmanager.alarmtestapp.cts.common.FgsTester; 20 import android.content.BroadcastReceiver; 21 import android.content.Context; 22 import android.content.Intent; 23 import android.util.Log; 24 25 public class TestAlarmReceiver extends BroadcastReceiver{ 26 private static final String TAG = TestAlarmReceiver.class.getSimpleName(); 27 private static final String PACKAGE_NAME = "android.alarmmanager.alarmtestapp.cts"; 28 private static final String INSTRUMENTATION_PACKAGE = "android.alarmmanager.cts"; 29 30 public static final String ACTION_REPORT_ALARM_EXPIRED = PACKAGE_NAME + ".action.ALARM_EXPIRED"; 31 public static final String EXTRA_ALARM_COUNT = PACKAGE_NAME + ".extra.ALARM_COUNT"; 32 public static final String EXTRA_ID = PACKAGE_NAME + ".extra.ID"; 33 34 @Override onReceive(Context context, Intent intent)35 public void onReceive(Context context, Intent intent) { 36 final int count = intent.getIntExtra(Intent.EXTRA_ALARM_COUNT, 1); 37 final long id = intent.getLongExtra(EXTRA_ID, -1); 38 Log.d(TAG, "Alarm " + id + " expired " + count + " times"); 39 40 final Intent reportAlarmIntent = new Intent(ACTION_REPORT_ALARM_EXPIRED) 41 .putExtra(EXTRA_ALARM_COUNT, count) 42 .setPackage(INSTRUMENTATION_PACKAGE) 43 .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY) 44 .addFlags(Intent.FLAG_RECEIVER_FOREGROUND); 45 46 if (intent.getBooleanExtra(TestAlarmScheduler.EXTRA_TEST_FGS, false)) { 47 final String result = FgsTester.tryStartingFgs(context); 48 Log.d(TAG, "FGS start result: " + result); 49 reportAlarmIntent.putExtra(FgsTester.EXTRA_FGS_START_RESULT, result); 50 } 51 context.sendBroadcast(reportAlarmIntent); 52 } 53 } 54