延时截屏的使用

Android系统有自带的截屏方法,音量下键 + power

但是有时候截屏并不是很方便,比如我们想获取是需要手指在屏幕上进行操作的画面,这样我们就不好去进行截屏操作


比如要获取下面的图,长按搜狗键盘上的T


当然,我们可以采用adb发送截屏命令进行截屏,但是如何采用更自然贴切的方法呢?


这个时候,延时截屏就有用了

音量下键 + power的快捷截屏方式调用的是

frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java

中的

 

    private void interceptScreenshotChord() {

        if (mScreenshotChordEnabled

                && mScreenshotChordVolumeDownKeyTriggered && mScreenshotChordPowerKeyTriggered

                && !mScreenshotChordVolumeUpKeyTriggered) {

            final long now = SystemClock.uptimeMillis();

            if (now <= mScreenshotChordVolumeDownKeyTime + SCREENSHOT_CHORD_DEBOUNCE_DELAY_MILLIS

                    && now <= mScreenshotChordPowerKeyTime

                            + SCREENSHOT_CHORD_DEBOUNCE_DELAY_MILLIS) {

                mScreenshotChordVolumeDownKeyConsumed = true;

                cancelPendingPowerKeyAction();

Slog.d(TAG, "===== interceptScreenshotChord, mScreenshotRunnable");

                mScreenshotRunnable.setScreenshotType(TAKE_SCREENSHOT_FULLSCREEN);

                mHandler.postDelayed(mScreenshotRunnable, getScreenshotChordLongPressDelay());

            }

        }

    }

 

其中,

                mScreenshotRunnable.setScreenshotType(TAKE_SCREENSHOT_FULLSCREEN);

                mHandler.postDelayed(mScreenshotRunnable, getScreenshotChordLongPressDelay());

 

调用系统截屏

 

如果要实现延时截屏,可以增加延时时间

mHandler.postDelayed(mScreenshotRunnable, 5*1000);//延时5s

 

另外,可以在PhoneWindowManager.java中注册广播接收来触发调用截屏操作


处理操作很简单清晰,关键的地方就是寻找到准确合适的操作位置





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值