如何获取android中的屏幕锁定广播

如何获取android中的屏幕锁定广播,第1张

概述如何在 android中锁定或打开屏幕? 我尝试使用SCREEN_OFF& SCREEN_ON在广播接收器中的动作但它不起作用. public void onReceive(Context context, Intent intent) { Log.d("XYZ", "Screen ON/OFF"); Toast.makeText(context, "screen 如何在 android中锁定或打开屏幕?
我尝试使用SCREEN_OFF& SCREEN_ON在广播接收器中的动作但它不起作用.

public voID onReceive(Context context,Intent intent) {        Log.d("XYZ","Screen ON/OFF");        Toast.makeText(context,"screen",10000).show();        if(intent.getAction().equals(Intent.ACTION_SCREEN_ON))        {.......}}

在活动中,我已注册广播,如 –

屏幕是我的广播接收器的对象

IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);            filter.addAction(Intent.ACTION_SCREEN_OFF);            mContext.registerReceiver(screen,filter);
解决方法 在MainActivity.class中调用UpdateService.class.

startService(new Intent(MainActivity.this,UpdateService.class));

UpdateService.class

public class UpdateService extends Service {    broadcastReceiver mReceiver;    public static int countOn = 0;    public static int countOff = 0;    @OverrIDe    public voID onCreate() {        super.onCreate();        // register receiver that handles screen on and screen off logic        Log.i("UpdateService","Started");        IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);        filter.addAction(Intent.ACTION_SCREEN_OFF);        filter.addAction(Intent.ACTION_ANSWER);        mReceiver = new MyReceiver();        registerReceiver(mReceiver,filter);    }    @OverrIDe    public voID onDestroy() {        unregisterReceiver(mReceiver);        Log.i("onDestroy RecIEver","Called");        super.onDestroy();    }    @OverrIDe    public int onStartCommand(Intent intent,int flags,int startID) {        // Todo auto-generated method stub        boolean screenOn = intent.getBooleanExtra("screen_state",false);        if (!screenOn) {            Log.i("screenON","Called");            Log.i("viaService","CountOn =" + countOn);            Toast.makeText(getApplicationContext(),"Awake",Toast.LENGTH_LONG)                    .show();        } else {            Log.i("screenOFF","CountOff =" + countOff);        }        return START_STICKY;    }    @OverrIDe    public IBinder onBind(Intent intent) {        // Todo auto-generated method stub        return null;    }}

接收器类

public class MyReceiver extends broadcastReceiver {    private boolean screenOff;    @OverrIDe    public voID onReceive(Context context,Intent intent) {        if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {            screenOff = true;            // Log.i("via Receiver","normal ScreenOFF" );        } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {            screenOff = false;        } else if(intent.getAction().equals(Intent.ACTION_ANSWER)) {        }        Intent i = new Intent(context,UpdateService.class);        i.putExtra("screen_state",screenOff);        context.startService(i);    }}
总结

以上是内存溢出为你收集整理的如何获取android中的屏幕锁定广播全部内容,希望文章能够帮你解决如何获取android中的屏幕锁定广播所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1122984.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存