Reputation: 2215
I want to do screen lock(Swipe, Pattern, Password or pin) automatically locked when finished call.
For example, When device set Pattern lock and screen light off, get Skype call that time screen light on and UI is on the screen, it by pass password. After disconnect call then reset that system lock.
I successfully bypass lock with below code :
Permission :
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
Code for unlock device:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
if(!pm.isScreenOn()) {
sendNotification("CALL_STATE_IDLE_SRC_OFF");
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE | PowerManager.ACQUIRE_CAUSES_WAKEUP, TAG);
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock lock = keyguardManager.newKeyguardLock(TAG);
lock.disableKeyguard();
wl.acquire();
wl.release();
} else {
sendNotification("CALL_STATE_IDLE_SRC_ON");
}
Intent intent = new Intent(this, Name_of_Activity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP
| Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT
| Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON
+ WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
+ WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
intent.putExtra("Call", "true");
getApplicationContext().startActivity(intent);
But i could not lock device when my call finished.
Code for lock device:
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock lock = keyguardManager.newKeyguardLock(TAG);
lock.reenableKeyguard();
Upvotes: 0
Views: 589