java - 使用安全标志在后台自定义 android 应用预览
问题描述
在我的 Android 应用程序中,我需要使用 SECURE_FLAG 对 Android 说:“嘿,你不要在后台截取我的应用程序的屏幕截图!”。好的,它只需在我的活动中使用以下代码行即可:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
...
}
我获得的内容在以下屏幕截图中进行了解释:
现在..我怎么能:
- 更改活动预览顶部的图标?
- 用另一种颜色或图像更改活动的预览?
我正在寻找解决方案,但我什么也没找到。除了不可能做到这一点(如果是真的,我认为对于 Android 来说是一个遗憾)。提前Tnx。
解决方案
您可以使用两种布局。
在布局的 xml 代码中,制作一个单独的布局并将整个 ui 代码剪切并粘贴到其中并为其指定 id
mainLayout
。制作另一个用于保护 UI 的布局。给这个布局一个idprotectLayout
,在那里你可以自定义你想要的东西,比如图像背景等等......然后在您想要确保安全的活动中遵循这一点。
LinearLayout mainLayout,secureLayout; @Override protected void onPause() { getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); mainLayout.setVisibility(View.GONE); secureLayout.setVisibility(View.VISIBLE); super.onPause(); } @Override protected void onStart() { getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,WindowManager.LayoutParams.FLAG_SECURE); mainLayout.setVisibility(View.VISIBLE); secureLayout.setVisibility(View.GONE); super.onResume(); }
推荐阅读
- swift - 在 UILabel 中为选定数量的字符设置动画
- java - Java源代码运行时Linux终端中的java.lang.NoClassDefFoundError,位于包中
- c++ - Qt 信号以一种奇怪的方式发出
- python - 为 pypy 安装了 numpy,但得到“TypeError: readonly attribute '__module__'”
- javascript - 在表中从 mysql 每页显示 50 行,但允许搜索整个表
- react-native - 播放控制台中的 React Native Release 应用程序错误
- html - fieldset id 属性和 value 属性的区别是什么?
- javascript - 如何使用由服务人员缓存的“no-cors”获取的资源?
- javascript - NativeScript 说没有找到模拟器图像?
- javascript - 测试数组是否不包含值