/*
*--------by Jay for temperature observer-----study android framework
*/
package com.android.server;
import android.app.ActivityManagerNative;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.os.UEventObserver;
import android.util.Slog;
//import android.media.AudioManager;
import java.io.FileReader;
import java.io.FileNotFoundException;
class TemperatureObserver extends UEventObserver {
private static final String TAG = TemperatureObserver.class.getSimpleName();
private static final boolean LOG = true;
private static final String TEMPERATURE_UEVENT_MATCH = "DEVPATH=/devices/platform/android-temperature";
private static final String TEMPERATURE_VALUE_PATH = "/sys/bus/iio/devices/device0/value";
private static final String TEMPERATURE_NAME_PATH = "/sys/bus/iio/devices/device0/name";
private int mTemperatureValue;
private int mPreTemperatureValue;
private String mTemperatureName;
private final Context mContext;
private final WakeLock mWakeLock;
public TemperatureObserver(Context context) {
mContext = context;
PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "TemperatureObserver");
mWakeLock.setReferenceCounted(false);
//++++add log
Slog.v(TAG,"------Struct function....");
// startObserving("EVENT=temperature");
startObserving(TEMPERATURE_UEVENT_MATCH);
// init(); // set initial status
}
@Override
public void onUEvent(UEventObserver.UEvent event) {
if (LOG) Slog.v(TAG, "Temperature UEVENT: " + event.toString());
try {
update(event.get("NAME"), Integer.parseInt(event.get("TEMPERATURE")));
} catch (NumberFormatException e) {
Slog.e(TAG, "Could not parse switch state from event " + event);
}
}
private native void native_temperature_update();
private synchronized final void update(String newName, int newValue){
if(LOG)
Slog.v(TAG,"NAME: "+newName+" VALUE: "+newValue);
native_temperature_update();
Slog.v(TAG,"-----value-----"+mTemperatureValue);
}
}