运行应用两次才能正常工作
我正在制作一个Android应用程序,用于测试手机上的某些安全功能是否已启用。例如,如果您启用了密码登录,或者您的数据在手机上已加密。
出于某种原因,该应用程序必须运行两次以测试并查看是否在手机上启用了这些安全功能,这就是我试图解决的问题。我希望它进行测试,并查看在创建应用时以及第一次运行应用时是否启用了安全功能,而不是第二次运行应用。
我测试这些功能是否在我的文件中的函数中启用。我在下面包含了函数代码:onStart()
MainActivity
@Override
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
@SuppressLint("NewApi")
public void onStart()
{
super.onStart();
//determine if phone uses lock pattern
//It returns 1 if pattern lock enabled and 0 if pin/password password enabled
ContentResolver cr = getBaseContext().getContentResolver();
lockPatternEnable = Settings.Secure.getInt(cr, Settings.Secure.LOCK_PATTERN_ENABLED, 0);//Settings.System
//returns 1 if pin/password protected. 0 if not
KeyguardManager keyguardManager = (KeyguardManager) getBaseContext().getSystemService(Context.KEYGUARD_SERVICE);
if( keyguardManager.isKeyguardSecure())
{
//it is pin or password protected
pinPasswordEnable=1;
}
else
{
//it is not pin or password protected
pinPasswordEnable=0;
}//http://stackoverflow.com/questions/6588969/device-password-in-android-is-existing-or-not/18716253#18716253
//determine if adb is enabled. works
adb=Settings.Global.getInt(cr, Settings.Global.ADB_ENABLED, 0);
//determine if bluetooth is enabled.works
bluetooth=Settings.Global.getInt(cr, Settings.Global.BLUETOOTH_ON, 0);
//Settings.System BLUETOOTH_DISCOVERABILITY
//determine if wifi is enabled. works
WifiManager wifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
if (wifi.isWifiEnabled())
{
//wifi is enabled
wifiInt=1;
}
else
wifiInt=0;
//determine if data is encrypted
getDeviceEncryptionencryption();
//determine if gps enabled
}//end of onStart() function
如果需要发布更多代码来回答此问题,请告诉我,并感谢您的帮助。也许这个问题与super.onStart();
有没有人认为初始加载屏幕可能有助于解决问题?