我想知道是否有方法通过某些“onXXXXX”回调方法检测到或接收到广播,如果其他进程正在拍摄我的应用程序显示屏幕截图。例如,如果SDK工具或其他屏幕捕获应用程序执行“屏幕捕获”,我希望收到通知,然后决定是否允许或不允许屏幕捕获。阻止在Android应用程序中捕获屏幕
如果这是不可能的,是否有办法锁定显示器,以便其他进程不能屏幕捕获我的显示器?
我想知道是否有方法通过某些“onXXXXX”回调方法检测到或接收到广播,如果其他进程正在拍摄我的应用程序显示屏幕截图。例如,如果SDK工具或其他屏幕捕获应用程序执行“屏幕捕获”,我希望收到通知,然后决定是否允许或不允许屏幕捕获。阻止在Android应用程序中捕获屏幕
如果这是不可能的,是否有办法锁定显示器,以便其他进程不能屏幕捕获我的显示器?
有no supported method可以截取Android上的其他应用。唯一的方法是使用生根或使用SDK,这两者都不会阻止或接收通知。如果其他应用程序占用您的屏幕截图,则默认情况下会使用不支持的方法,并且可能会按照您的喜好进行操作。
我想澄清一下,我不是暗示你不应该使用任何可用的方法来保护你的应用程序。我只是让你知道,如果不使用不支持的方法,这可能是不可能的,而且即使你使用它们,你也可能无法百分之百保护屏幕截图。
这个工作对我的三星标签2 7"
使用the following approach,简单地将FLAG_SECURE
添加到窗口标志
public class FlagSecureTestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(LayoutParams.FLAG_SECURE,
LayoutParams.FLAG_SECURE);
setContentView(R.layout.main);
}
}
与您可能需要更改警告
LayoutParams
至
WindowManager.LayoutParams
这个工作,应该是大多数开发人员的答案。 –
无法在7.0环境模式下工作.. –
实际上,这些功能在官方资源中已经开始出现,并且可以在非root应用程序的许多供应商设备上使用。 –
尽管如此,它们在API文档中才是官方的。我只是说,因为截取屏幕截图的任何方法目前都不受支持,或者直接来自SDK,因此很可能没有官方方法与其进行交互。 –
'View.getDrawingCache(boolean autoScale)''?该文件显示:_返回该视图图形缓存的位图._ – iDroid