文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android从熄屏唤醒屏幕

2023-09-05 10:45

关注

方案一、使用Android唤醒aip

1、加入权限

2、进行初始化

      private PowerManager pm;// init powerManager    private Context cnt; private void wakeUpScreen() {        if (cnt != null) {            pm = (PowerManager) cnt.getSystemService(POWER_SERVICE);            mWakelock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP |                    PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK  |                    PowerManager.ON_AFTER_RELEASE, "target"); //  this target for tell OS which app control screen        }    }

3、强制亮屏

 mWakelock.acquire(1000L);                       

4、取消强制亮屏,释放控制

 mWakelock.release();

这里需要注意的是acquire和release必须成对使用

常亮方法

推荐使用,此法最为简单,无需修改代码

android:keepScreenOn="true" 

只要是控件基本都有这个属性,代码同样也可以设置

在程序中用代码实现。代码如下:

把这段代码加在setContentView(R.layout.main)之前即可,这种方法,安装时,不会提示安装人是否允许使用禁止休眠功能

想要那个界面保持长亮就把这句话添加到那个界面类中,没添加此语句的界面类不会保持长亮。最实用的的方法

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);


方案二、使用代码点击应用屏幕(app退出无效)

public class AutoTouch {    public int width = 0;    public int height = 0;        public void autoClickRatio(Activity act, final double ratioX, final double ratioY) {        width = act.getWindowManager().getDefaultDisplay().getWidth();        height = act.getWindowManager().getDefaultDisplay().getHeight();        new Thread(new Runnable() {            @Override            public void run() {                // 线程睡眠0.1s                try {                    Thread.sleep(100);                } catch (InterruptedException e) {                    e.printStackTrace();                }                // 生成点击坐标                int x = (int) (width * ratioX);                int y = (int) (height * ratioY);                // 利用ProcessBuilder执行shell命令                String[] order = {"input", "tap", "" + x, "" + y};                try {                    new ProcessBuilder(order).start();                } catch (IOException e) {                    e.printStackTrace();                }            }        }).start();    }        public void autoClickPos(final double x, final double y) {//        width = act.getWindowManager().getDefaultDisplay().getWidth();//        height = act.getWindowManager().getDefaultDisplay().getHeight();        new Thread(new Runnable() {            @Override            public void run() {                // 线程睡眠0.1s                try {                    Thread.sleep(100);                } catch (InterruptedException e) {                    e.printStackTrace();                }                // 利用ProcessBuilder执行shell命令                String[] order = {"input", "tap", "" + x, "" + y};                try {                    new ProcessBuilder(order).start();                } catch (IOException e) {                    e.printStackTrace();                }            }        }).start();    }}

使用

初始化对象 private static AutoTouch autoTouch = new AutoTouch();//自动点击屏幕  调用  autoTouch.autoClickPos( 840, 580);

来源地址:https://blog.csdn.net/shi450561200/article/details/130849703

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯