Android开发安全问题之防止页面被其他程序覆盖监听,提示用户程序转移后台运行

本文探讨了Android应用中防止Activity被其他程序覆盖监听的安全问题。通过启动Service并使用startForeground方法保持服务前台运行,来提示用户当前应用是否被正确使用。此外,还介绍了如何通过第二个Service关闭状态栏通知,以优化用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android开发安全问题之防止页面被其他程序覆盖监听,提示用户程序转移后台运行

近期由于项目原因,对安全性需要严格,今天先整理在activity防止劫持的方案,也是在网上收集各方的资料,记录下给自己备案,供以后参考。

思路:
根据现有知识了解到,activity被劫持是其他程序使用和本程序相同的界面导致用户不合理操作,比如,登录界面被劫持,用户输入登录信息但是并非本程序,导致信息泄露。

解决方案:
由于很难阻止其他程序显示在栈顶,但是我们可以告知用户当前的应用并非使用的目标应用,这样用户就知道当前界面不可以输入
1.在登录页的生命周期监听界面是否覆盖,但是存在局限不能监听整个应用。
2.启动给一个service一直监听当前栈顶的应用,来确实目标应用是否被覆盖或退出。

后面的思路是按照第二种完成的。

  1. 在代码里添加后台service,由于会存在后台sevice被清理的情况,于是考虑使用Service的startForeground(PID, getNotification())方法,可以通过startForeground让服务前台运行,当stopservice的时候通过stopForeground去掉
public class AntiService extends Service {
   
   
    private static final String TAG = "AntiService";

    private final int PID = android.os.Process.myPid();
    private AssistServiceConnection mConnection;

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        setForeground();  
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
           Log.d(TAG, "AntiService: onDestroy()");  
    }

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值