tags:

views:

52

answers:

0

How to know Android Phone is going to sleep? Please Help me with a sample code I tried with the sample code but nothing is happening Please Help me. Thanks My code is...

//ScreenON_OFF_ACTIVITY.java

package com.pack;

import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle;

public class ScreenON_OFF_ACTIVITY extends Activity {

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        onCreate();
 }
 public void onCreate() {

        // initialize receiver
        System.out.println("onCreate1 ");
        IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
        filter.addAction(Intent.ACTION_SCREEN_OFF);
        BroadcastReceiver mReceiver = new ScreenReceiver();
        registerReceiver(mReceiver, filter);
        System.out.println("onCreate ");        
    }

    @Override
    protected void onPause() {
        // when the screen is about to turn off
        if (ScreenReceiver.screenOff) {
            // this is the case when onPause() is called by the system due to a screen state change
            System.out.println("SCREEN TURNED OFF");
        } else {
            // this is when onPause() is called when the screen state has not changed
             System.out.println("this is when onPause() is called when the screen state has not changed ");

        }
        super.onPause();
    }

    @Override
    protected void onResume() {
        // only when screen turns on
        if (!ScreenReceiver.screenOff) {
            // this is when onResume() is called due to a screen state change
            System.out.println("SCREEN TURNED ON");
        } else {
            // this is when onResume() is called when the screen state has not changed
             System.out.println(" this is when onResume() is called when the screen state has not changed ");
        }
        super.onResume();
    }



}

//ScreenReceiver .java

package com.pack;

import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent;

public class ScreenReceiver extends BroadcastReceiver {

public static boolean screenOff;

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

     System.out.println("onReceive ");
    if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
        screenOff = true;
        System.out.println("SCREEN TURNED OFF on BroadcastReceiver");
    } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
        screenOff = false;
        System.out.println("SCREEN TURNED ON on BroadcastReceiver");
    }
    Intent i = new Intent(context, UpdateService.class);
    i.putExtra("screen_state", screenOff);
    context.startService(i);
}

}

// UpdateService .java

package com.pack;

import android.app.Service; import android.content.BroadcastReceiver; import android.content.Intent; import android.content.IntentFilter; import android.os.IBinder;

public class UpdateService extends Service {

public void onCreate() {
    super.onCreate();
    // register receiver that handles screen on and screen off logic
    IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
    filter.addAction(Intent.ACTION_SCREEN_OFF);
    BroadcastReceiver mReceiver = new ScreenReceiver();
    registerReceiver(mReceiver, filter);
}

@Override
public void onStart(Intent intent, int startId) {
    boolean screenOn = intent.getBooleanExtra("screen_state", false);
    if (!screenOn) {
        System.out.println("Screen is off");
    } else {
        System.out.println("Screen is on");
    }
}

@Override
public IBinder onBind(Intent intent) {      
    return null;
}

}

Please help me find what is wrong with this code.