19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage com.android.internal.app;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.internal.os.BatteryStatsImpl;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
217e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackbornimport android.os.WorkSource;
22e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Savilleimport android.telephony.SignalStrength;
23e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IBatteryStats {
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    byte[] getStatistics();
269adb9c3b10991ef315c270993f4155709c8a232dDianne Hackborn    void noteStartWakelock(int uid, int pid, String name, int type);
279adb9c3b10991ef315c270993f4155709c8a232dDianne Hackborn    void noteStopWakelock(int uid, int pid, String name, int type);
2832123fde1b82fc7f5d04f35e2b972364d4352ec9Mathias Agopian
2932123fde1b82fc7f5d04f35e2b972364d4352ec9Mathias Agopian    /* DO NOT CHANGE the position of noteStartSensor without updating
3032123fde1b82fc7f5d04f35e2b972364d4352ec9Mathias Agopian       SensorService.cpp */
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void noteStartSensor(int uid, int sensor);
3232123fde1b82fc7f5d04f35e2b972364d4352ec9Mathias Agopian
3332123fde1b82fc7f5d04f35e2b972364d4352ec9Mathias Agopian    /* DO NOT CHANGE the position of noteStopSensor without updating
3432123fde1b82fc7f5d04f35e2b972364d4352ec9Mathias Agopian       SensorService.cpp */
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void noteStopSensor(int uid, int sensor);
3632123fde1b82fc7f5d04f35e2b972364d4352ec9Mathias Agopian
377e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackborn    void noteStartWakelockFromSource(in WorkSource ws, int pid, String name, int type);
387e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackborn    void noteStopWakelockFromSource(in WorkSource ws, int pid, String name, int type);
397e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackborn
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void noteStartGps(int uid);
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void noteStopGps(int uid);
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void noteScreenOn();
43617f877c06c82584a38f41bb60d836e08c5e3bdaDianne Hackborn    void noteScreenBrightness(int brightness);
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void noteScreenOff();
45617f877c06c82584a38f41bb60d836e08c5e3bdaDianne Hackborn    void noteInputEvent();
46617f877c06c82584a38f41bb60d836e08c5e3bdaDianne Hackborn    void noteUserActivity(int uid, int event);
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void notePhoneOn();
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void notePhoneOff();
49e9b06d754af03faf27012fbed1e7559ec1ba7c79Wink Saville    void notePhoneSignalStrength(in SignalStrength signalStrength);
50627bba736d022c39696b7c582a6af5592d2b8c33Dianne Hackborn    void notePhoneDataConnectionState(int dataType, boolean hasData);
51f37447bad3773b62176baa837908daf6edb44273Amith Yamasani    void notePhoneState(int phoneState);
5258e0eefeb5e2e270e2b04369bbf29fc22abda8d5Dianne Hackborn    void noteWifiOn();
5358e0eefeb5e2e270e2b04369bbf29fc22abda8d5Dianne Hackborn    void noteWifiOff();
5458e0eefeb5e2e270e2b04369bbf29fc22abda8d5Dianne Hackborn    void noteWifiRunning(in WorkSource ws);
5558e0eefeb5e2e270e2b04369bbf29fc22abda8d5Dianne Hackborn    void noteWifiRunningChanged(in WorkSource oldWs, in WorkSource newWs);
5658e0eefeb5e2e270e2b04369bbf29fc22abda8d5Dianne Hackborn    void noteWifiStopped(in WorkSource ws);
57105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    void noteBluetoothOn();
58105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    void noteBluetoothOff();
59105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    void noteFullWifiLockAcquired(int uid);
60105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    void noteFullWifiLockReleased(int uid);
61105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    void noteScanWifiLockAcquired(int uid);
62105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project    void noteScanWifiLockReleased(int uid);
635347bd4cda2b6afc18f8acab48e52131f35ed13cRobert Greenwalt    void noteWifiMulticastEnabled(int uid);
645347bd4cda2b6afc18f8acab48e52131f35ed13cRobert Greenwalt    void noteWifiMulticastDisabled(int uid);
657e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackborn    void noteFullWifiLockAcquiredFromSource(in WorkSource ws);
667e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackborn    void noteFullWifiLockReleasedFromSource(in WorkSource ws);
677e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackborn    void noteScanWifiLockAcquiredFromSource(in WorkSource ws);
687e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackborn    void noteScanWifiLockReleasedFromSource(in WorkSource ws);
697e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackborn    void noteWifiMulticastEnabledFromSource(in WorkSource ws);
707e9f4eb2608148436cef36c9969bf8a599b39e72Dianne Hackborn    void noteWifiMulticastDisabledFromSource(in WorkSource ws);
711059c3c30ad96a15695c1a92ae8896e078a6309fJeff Sharkey    void noteNetworkInterfaceType(String iface, int type);
726b7b4845212b3a439c527f2e1eca205b6b45fcebDianne Hackborn    void setBatteryState(int status, int health, int plugType, int level, int temp, int volt);
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    long getAwakeTimeBattery();
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    long getAwakeTimePlugged();
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
76