app从后台切换到前台 验证手势密码

支付宝等一些需要安全性更强的app,从后台或者手机开屏后,需要认证设置的手势密码.


android app和ios app的不同:
        1.android 的每一个activity就是一个窗口,
        
        2.ios的application里面包含一个window窗口.
        
ios app在从后台挂起的时候,就已经在application中进行了判断,可以直接弹出手势密码验证的页面,但是,android 需要在每一个页面中去判断.


所以,就需要我们去定义一些基类,让应用中用到的activity窗口去继承.


1.定义应用需要用到的基类,
    BaseActivity extends Activity{}
    
    BaseFragmentActivity extends FragmentActivity{}
    
2.其他的activity继承自定义的基类BaseActivity或BaseFragmentActivty




3.在基类中去定义方法,判断应用是否被挂起或者屏幕熄灭.


    /**
* 判断应用是否挂起到后台
* */
public  boolean isBackground() { 


ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);  
List<RunningAppProcessInfo> appProcesses = activityManager  
.getRunningAppProcesses();  
for (RunningAppProcessInfo appProcess : appProcesses) {  
if (appProcess.processName.equals(getPackageName())) { 


if (appProcess.importance != RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {  


return true;  
} else {  


return false;  
}  
}  
}  
return false;  
}  


/**
* 检测手机是否屏幕是否关闭
* */
private boolean isScreenOFF(){

/**false 屏幕为关闭*/
boolean isScreenOff = false;

/**true 屏幕关闭*/
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
isScreenOff = pm.isScreenOn();

return !isScreenOff;
}




4.在基类的onPause,onStop中,判断当前的app,手机的状态,


   
5.在基类的onResume方法中,根据onPause,onStop中的状态值,来判断是否跳转到画手势的页面.




以上基本可以解决app,手机状态发生改变后,验证手势密码.





阅读更多
个人分类: android
上一篇“The local variable XXX may not have been initialized”
下一篇app安全
博主设置当前文章不允许评论。

app后台恢复到前台启动手势解锁

2016年03月10日 1.39MB 下载

没有更多推荐了,返回首页

关闭
关闭