美文网首页
Android 唤醒手机亮屏并前台显示

Android 唤醒手机亮屏并前台显示

作者: Asbefore如初_3142 | 来源:发表于2019-03-15 15:30 被阅读0次

    Android 唤醒手机亮屏并前台显示

    目前网络上许多唤醒手机亮屏的方式在高版本上都失效了

    下面是自己实现的方式

    假设已经实现了一个广播接收器

    一:Android 唤醒锁唤醒CPU

    当广播接收器收到消息的时候,持有唤醒锁。这时候并不会点亮屏幕。

    PowerManager pm = (PowerManager) 
    context.getSystemService(Context.POWER_SERVICE);
    if (pm == null)
        return;PowerManager.WakeLock        
    
    wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK        |     PowerManager.ACQUIRE_CAUSES_WAKEUP, 
    "messagelisenter:bright");
    wl.acquire(1000);
    wl.release();
    
    
    

    二:启动一个Activity

    在广播接收器中,跳转到某一个 activity 中,这里假设是 LockShowActivity

    Intent intent = new Intent(this, LockShowActivity.class);
    startActivity(intent);
    

    三:Activity 设置Flags

    在 Activity 的 onCreate 中,添加 Flags

    public class LockShowActivity extends Activity {
        @Override    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);        
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);        
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
            setContentView(R.layout.activity_lock_show);
            Log.v("testapp", "activity:" + 
    getIntent().getIntExtra(Constant.GET_MESSAGE_LENGTH, -1));
        }}
    

    这样,只要广播接收器收到一个消息,手机就会亮屏并显示这个 Activity

    注意

    在手机上要手动设置权限:允许锁屏显示

    这个权限要手动设置,不能动态申请。而微信、qq等不需要手动设置,是因为手机厂商默认给了权限

    PS:测试手机是小米8

    相关文章

      网友评论

          本文标题:Android 唤醒手机亮屏并前台显示

          本文链接:https://www.haomeiwen.com/subject/xgxrmqtx.html