how to start the app on power button press

后端 未结 3 682
迷失自我
迷失自我 2020-12-09 14:36

I want to start my app when a user press the power button. I m following This code but its not showing any Log and toast.

here is my complete code.

3条回答
  •  眼角桃花
    2020-12-09 15:12

    Here this one is the complete code, which will open your application as soon you presss power button. I am also doing the same project, where i want to open my Application directly after i press power button (turn on).

    MainActivity.java

     public class MainActivity extends Activity 
       {
    
       @Override
      protected void onCreate(Bundle savedInstanceState) 
      {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_switch_power_offon);
    
            startService(new Intent(getApplicationContext(), LockService.class));
        }//EOF Oncreate
        }//EOF Activity
    

    LockService.java

       public class LockService extends Service {
    
    @Override
      public IBinder onBind(Intent intent) {
      return null;
      }
      @Override
      public void onCreate() {
      super.onCreate();
       }
    
      @Override
      public int onStartCommand(Intent intent, int flags, int startId) 
    {
      final IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
      filter.addAction(Intent.ACTION_SCREEN_OFF);
      filter.addAction(Intent.ACTION_USER_PRESENT);
      final BroadcastReceiver mReceiver = new ScreenReceiver();
     registerReceiver(mReceiver, filter);
     return super.onStartCommand(intent, flags, startId);
      }
     public class LocalBinder extends Binder 
    {
      LockService getService() {
      return LockService.this;
     }
    }//EOF SERVICE
    

    ScreenReceiver.java

    public class ScreenReceiver extends BroadcastReceiver {
    
    
    public static boolean wasScreenOn = true;
    
    public void onReceive(final Context context, final Intent intent) {
    Log.e("LOB","onReceive");
    
    if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) 
    {
            // do whatever you need to do here
            wasScreenOn = false;
            //Log.e("LOB","wasScreenOn"+wasScreenOn);
            Log.e("Screen ","shutdown now");
     } 
      else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) 
      {
            // and do whatever you need to do here
            wasScreenOn = true;
            Log.e("Screen ","awaked now");
    
            Intent i = new Intent(context, MainActivity.class);  //MyActivity can be anything which you want to start on bootup...
            i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(i);
    
        }
        else if(intent.getAction().equals(Intent.ACTION_USER_PRESENT))
        {
            Log.e("LOB","userpresent");
          //  Log.e("LOB","wasScreenOn"+wasScreenOn);
    
    
        }
    }
    

    }//EOF SCREENRECEIVER.JAVA

    Now this is xml file, Please copy paste and just change the package name you are using

     
    

    
    
    
    
        
            
                
    
                
            
        
    
            
                
                    
                
            
    
    

提交回复
热议问题