我只是对 iOS 感到厌倦,最近我换到了 Android。我有一台 Nexus 5 设备,我刚刚在我的设备上安装完我最喜欢的应用程序。
其中一个应用程序是 Line,这是来自 naver 的著名通信应用程序。我安装了它,并为它配置了密码以确保对其的访问安全,因此除了我之外没有人能看到里面的“ secret ”对话。
问题是即使我在线启用了密码,如果有人按下“最近列表应用程序”按钮,他们也可以完美地看到我上次对话的 Line 屏幕截图,因此任何人都可以看到我在 Line 中做了什么.
我在 iPhone 上进行了相同的测试,结果......令人惊讶......iOS 正在启用密码屏幕后拍摄快照,因此任何人都看不到任何东西。似乎在 Android 中,快照是在启用密码屏幕之前拍摄的,因此任何人都可以看到最后一行屏幕的样子:)
所以,在阅读了这个论坛上的其他帖子后,我应该有几种方法来解决这个问题:
- 等待 LINE 的公司 NAVER 添加一个选项来阻止此应用显示在最近的应用列表中(在他们的 list 中添加 android:excludeFromRecents="true")[不会很快]
- 等待 LINE 的公司 NAVER 在启用密码屏幕后强制快照[可能很快但不在公司的路线图中]
- 自行反编译 apk 并更改 list - 或使用 FLAG_SECURE -(我试过了,但是当我启动新应用程序时,它突然在启动时死机,并显示一条消息“应用程序已停止”。我认为 LINE 的服务器在启动时会验证客户端app 是预期的,比较大小或其他东西)
所以我不知道有更多方法可以解决这个问题。你还有什么想法吗?我坚持下去。
非常感谢。
最佳答案
检测 LINE 何时离开前台
创建一个后台服务,检测 LINE 是否在前台以及何时离开前台。 ( https://stackoverflow.com/a/14044662/1683141 )
当行离开前景时,您应该采取行动:
A.完全停止line app
或者
B. 打开和“关闭”line 应用程序,使其在多任务缩略图中显示锁定状态
A possible way to accomplish situation B:
Optionally: detect which app the user has now opened and remember it
- Wait a few seconds and open the LINE app again after the user closed it (by intent for example)
- Now the LINE app will show the lock screen
- Now let the background service open the home screen (or make an intent to the remembered activity)
- Now the LINE app is back to the background and it will have a multitask-thumbnail showing the locked screen.
Ofcourse, this will create a loop, and this isn't a stable solution
-选项 A 是一种相对可靠的方法,并且(在我看来)是实现您想要的效果的好方法:没有人可以看到您的安全聊天。缺点是该应用程序现在已从多任务处理中移除。
-选项 B 只是一个想法,但如果以正确的方式完成,也许它会奏效。
编辑:选项 A 无效。如果任务被终止,应用程序不会从多任务处理中移除。
关于android - 阻止应用程序显示在 android kitkat 4.4.2 上的最近应用程序列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21184634/