在用户输入错误密码3次后,我尝试在锁定屏幕上显示Toast。我能够通过日志控制台验证用户已经失败了3次,但希望在锁定屏幕上显示一些消息,以便用户知道。我在DeviceAdminReceiver中做这件事。我可以举杯庆祝一个成功的密码提交,只是不是一个失败的密码。
import android.app.admin.DeviceAdminReceiver;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;
public class AdminReceiver extends DeviceAdminReceiver {
@Override
public void onPasswordFailed(Context ctxt, Intent intent) {
Log.d("LockScreen", "onPasswordFailed");
DevicePolicyManager mgr = (DevicePolicyManager) ctxt.getSystemService(Context.DEVICE_POLICY_SERVICE);
int no = mgr.getCurrentFailedPasswordAttempts();
if (no >= 3) {
Log.d("LockScreen", "Failed 3 times");
//Toast does not show
Toast.makeText(ctxt, R.string.password_failed, Toast.LENGTH_LONG)
.show();
}
}
@Override
public void onPasswordSucceeded(Context ctxt, Intent intent) {
Toast.makeText(ctxt, R.string.password_success, Toast.LENGTH_LONG)
.show();
}
}
发布于 2017-03-21 13:14:35
问题是,当您显示toast.the锁定屏幕将覆盖吐司。因为它尚未解锁,因此可以通过以下方法解决
message.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
https://stackoverflow.com/questions/42918111
复制相似问题