how to start the app on power button press

后端 未结 3 691
迷失自我
迷失自我 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 14:52

    First, unlike other broad casted intents, for Intent.ACTION_SCREEN_OFF and Intent.ACTION_SCREEN_ON you CANNOT declare them in your Android Manifest! so You need to make a service which will keep on running like this

    public static class UpdateService extends Service {
    
            @Override
            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 Receiver();
                registerReceiver(mReceiver, filter);
            }
    
            @Override
            public void onStart(Intent intent, int startId) {
                boolean screenOn = intent.getBooleanExtra("screen_state", false);
                if (!screenOn) {
                    // your code
                } else {
                    // your code
                }
            }
    }
    

    and your receiver can be something

    public class Receiver extends BroadcastReceiver {
    
        private boolean screenOff;
    
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
                screenOff = true;
            } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
                screenOff = false;
            }
            Intent i = new Intent(context, UpdateService.class);
            i.putExtra("screen_state", screenOff);
            context.startService(i);
        }
    
    }
    

提交回复
热议问题