如何影响Android在进入后台时从应用程序获取的快照
我的问题是安卓系统在进入后台时拍摄应用程序屏幕的快照。我在应用程序中有一些安全的内容,我想在这一点上隐藏这些内容,因此,如果用户进入后台并打开最近的应用程序,我可以始终为我的应用程序显示相同的内容(例如启动屏幕),而不是进入后台之前可见的最后一个屏幕 这可能吗 谢谢 请不要发布关于FLAG_SECURE的答案,我不希望屏幕是黑色的,也不希望从中发现错误:使用 用法:如何影响Android在进入后台时从应用程序获取的快照,android,Android,我的问题是安卓系统在进入后台时拍摄应用程序屏幕的快照。我在应用程序中有一些安全的内容,我想在这一点上隐藏这些内容,因此,如果用户进入后台并打开最近的应用程序,我可以始终为我的应用程序显示相同的内容(例如启动屏幕),而不是进入后台之前可见的最后一个屏幕 这可能吗 谢谢 请不要发布关于FLAG_SECURE的答案,我不希望屏幕是黑色的,也不希望从中发现错误:使用 用法: public class FlagSecureTestActivity extends Activity { @O
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);
}
}
这将防止截图被拍摄到该活动。并将在最近的应用程序列表中显示该应用程序的空白屏幕
编辑:
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);
}
}
除了FLAG\u SECURE
之外,似乎没有任何方法可以阻止截屏。然而,我建议改为使用这种不干净的解决方法。我没有尝试过这个,只是一个想法:
onPause()
和onBackPressed()
方法。因此,当按下home(主页)或back(返回)按钮时,这些被称为setContentView()
来显示另一个虚拟视图或启动屏幕。因此,此初始视图将成为最后显示的视图super.onPause()
或super.onBackPressed()
,以便拍摄此初始屏幕的屏幕截图。在第二点之前不要给他们打电话我建议了另一种解决方法,也许你可以试试。你找到解决方法了吗?@TashPemhiwa-nope,在这篇文章之后没有尝试过。从几年前开始可能会这样做:)我已经尝试过使用
布尔活动。onCreateThumbnail()
但它从未在API 22和24上被调用查看此帖子,似乎仍然没有很好的解决方案:@Niko看起来没有其他方法..我甚至尝试过从堆栈顶部清除应用程序,但这也不行。这是一个如此愚蠢的实现,至少没有公共API,但可能是对平台私有成员/方法的一些攻击。谢谢你的努力。@Niko你能通过暂停/恢复来实现上述目标吗?。。我知道我迟到了……现在是2016年:)