1 /* 2 ** Copyright 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.os; 18 19 import android.os.CoolingDevice; 20 import android.os.IThermalEventListener; 21 import android.os.IThermalStatusListener; 22 import android.os.Temperature; 23 24 import java.util.List; 25 26 /** 27 * {@hide} 28 */ 29 interface IThermalService { 30 /** 31 * Register a listener for thermal events. 32 * @param listener the IThermalEventListener to be notified. 33 * {@hide} 34 */ registerThermalEventListener(in IThermalEventListener listener)35 boolean registerThermalEventListener(in IThermalEventListener listener); 36 37 /** 38 * Register a listener for thermal events on given temperature type. 39 * @param listener the IThermalEventListener to be notified. 40 * @param type the temperature type IThermalEventListener to be notified. 41 * @return true if registered successfully. 42 * {@hide} 43 */ registerThermalEventListenerWithType(in IThermalEventListener listener, in int type)44 boolean registerThermalEventListenerWithType(in IThermalEventListener listener, in int type); 45 46 /** 47 * Unregister a previously-registered listener for thermal events. 48 * @param listener the IThermalEventListener to no longer be notified. 49 * @return true if unregistered successfully. 50 * {@hide} 51 */ unregisterThermalEventListener(in IThermalEventListener listener)52 boolean unregisterThermalEventListener(in IThermalEventListener listener); 53 54 /** 55 * Get current temperature with its throttling status. 56 * @return list of {@link android.os.Temperature}. 57 * {@hide} 58 */ getCurrentTemperatures()59 List<Temperature> getCurrentTemperatures(); 60 61 /** 62 * Get current temperature with its throttling status on given temperature type. 63 * @param type the temperature type to query. 64 * @return list of {@link android.os.Temperature}. 65 * {@hide} 66 */ getCurrentTemperaturesWithType(in int type)67 List<Temperature> getCurrentTemperaturesWithType(in int type); 68 69 /** 70 * Register a listener for thermal status change. 71 * @param listener the {@link android.os.IThermalStatusListener} to be notified. 72 * @return true if registered successfully. 73 * {@hide} 74 */ registerThermalStatusListener(in IThermalStatusListener listener)75 boolean registerThermalStatusListener(in IThermalStatusListener listener); 76 77 /** 78 * Unregister a previously-registered listener for thermal status. 79 * @param listener the {@link android.os.IThermalStatusListener} to no longer be notified. 80 * @return true if unregistered successfully. 81 * {@hide} 82 */ unregisterThermalStatusListener(in IThermalStatusListener listener)83 boolean unregisterThermalStatusListener(in IThermalStatusListener listener); 84 85 /** 86 * Get current thermal status. 87 * @return status defined in {@link android.os.Temperature}. 88 * {@hide} 89 */ getCurrentThermalStatus()90 int getCurrentThermalStatus(); 91 92 /** 93 * Get current cooling devices. 94 * @return list of {@link android.os.CoolingDevice}. 95 * {@hide} 96 */ getCurrentCoolingDevices()97 List<CoolingDevice> getCurrentCoolingDevices(); 98 99 /** 100 * Get current cooling devices on given type. 101 * @param type the cooling device type to query. 102 * @return list of {@link android.os.CoolingDevice}. 103 * {@hide} 104 */ getCurrentCoolingDevicesWithType(in int type)105 List<CoolingDevice> getCurrentCoolingDevicesWithType(in int type); 106 } 107