Android从熄屏唤醒屏幕

Android从熄屏唤醒屏幕方案一 使用 Android 唤醒 aip 1 加入权限 uses permissionan name android permission wake lock 2 进行初始化 唤醒 屏幕 private PowerManager pm init powerManager

大家好,我是讯享网,很高兴认识大家。

方案一、使用Android唤醒aip

1、加入权限

<uses-permissionandroid:name="android.permission.WAKE_LOCK" />

讯享网

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必须成对使用

常亮方法

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

android:keepScreenOn="true" 

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


讯享网

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

把这段代码加在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; / * 传入在屏幕中的比例位置,坐标左上角为基准 * * @param act 传入Activity对象 * @param ratioX 需要点击的x坐标在屏幕中的比例位置 * @param ratioY 需要点击的y坐标在屏幕中的比例位置 */ 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(); } / * 传入在屏幕中的坐标,坐标左上角为基准 * * @paramact传入Activity对象 * @param x 需要点击的x坐标 * @param y 需要点击的x坐标 */ 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);

小讯
上一篇 2025-02-19 18:51
下一篇 2025-03-20 12:36

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/61903.html