关于 android 截屏, 在 Service 中实现后台截屏
记得上一次写 android 代码可能在十年前了,那时用的是eclipse开发,现在全忘记了。
这次用 android studio 捣鼓快一周时间,才做完一个小玩意。
android 5.1
因为电脑配置比较低,无法运行模拟器,我是在一台旧的手机上(meizu note 2)进行usb调试,测试截屏时弹出一次权限提示对话框,可以选择不再提示, 并且不需要【悬浮窗】权限, 也不需要将 Service 设置为前台 Service, 就可以正常截屏。
android 11
代码写好后,放到 android 11 上运行闪退,经过两天不懈的努力,终于把截屏的事情搞清楚了。
1. 在准备截屏前, Service 要设置为 前台Service
Intent notificationIntent = new Intent(this, MainActivity.class); Notification notification = notificationBuilder.build(); //通知 ... startForeground(1, notification); //必须使用此方法显示通知
同时再加一个权限配置:
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
2. 每一次的截屏都会弹出权限对话框, 不像 android 5.1 那样可以选择不再提示
3. 在应用的权限管理中,要给应用加上悬浮窗权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
看来 android 每一个版本变化真的很大,安全限制越来越严格。
Notification notification = notificationBuilder.build();标签:Service,对话框,notification,截屏,Activity,android,权限 From: https://www.cnblogs.com/personnel/p/16817191.html