使用安全标志自定义 android 应用在后台时的预览
Customize android app preview when it is in background with secure flag
在我的 Android 应用程序中,我需要使用 SECURE_FLAG 对 Android 说:"hey you don't take a screenshoot of my app in background!"。好的,只需在我的活动中使用以下代码行即可:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
...
}
我得到的结果在下面的截图中有解释:
现在..我怎么能:
- 更改 activity 预览顶部的图标?
- 将 activity 的预览更改为另一种颜色或图像?
我正在寻找解决方案,但我没有找到任何解决方案.. 除了不可能做到(如果是真的我认为很遗憾,因为Android)。提前Tnx.
您可以使用两种布局。
在布局的 xml 代码中,制作一个单独的布局并剪切并粘贴整个 ui 代码并为其指定 ID mainLayout
.制作另一个用于固定 UI 的布局。为该布局指定 id protectLayout
,然后您可以自定义您想要的内容,例如图像背景等...
然后在 activity 中按照此操作以确保安全。
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();
}
在我的 Android 应用程序中,我需要使用 SECURE_FLAG 对 Android 说:"hey you don't take a screenshoot of my app in background!"。好的,只需在我的活动中使用以下代码行即可:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
...
}
我得到的结果在下面的截图中有解释:
现在..我怎么能:
- 更改 activity 预览顶部的图标?
- 将 activity 的预览更改为另一种颜色或图像?
我正在寻找解决方案,但我没有找到任何解决方案.. 除了不可能做到(如果是真的我认为很遗憾,因为Android)。提前Tnx.
您可以使用两种布局。
在布局的 xml 代码中,制作一个单独的布局并剪切并粘贴整个 ui 代码并为其指定 ID
mainLayout
.制作另一个用于固定 UI 的布局。为该布局指定 idprotectLayout
,然后您可以自定义您想要的内容,例如图像背景等...然后在 activity 中按照此操作以确保安全。
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(); }