Android开发 显示密码 输入时短暂显示字符

发布于:2024-08-09 ⋅ 阅读:(125) ⋅ 点赞:(0)

Android开发 显示密码 输入时短暂显示字符

Android UI 控件EditText为密码类型的字符串的控制显示。密码字符串默认可以短暂显示,需要按下后不显示,这个其实是可以进行设置的。

启动Android原生设置指令:

am start -n com.android.settings/.Settings

在这里插入图片描述

1、设置和获取密码是否可见

实现其实很简单,如下代码即可:

//设置密码是否短暂可见
public void setIsShowPasswordChecked(boolean isChecked) {
    Settings.System.putInt(mContext.getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD,isChecked ? 1 : 0);
}

//获取密码是否短暂可见
public boolean isShowPasswordShortTime() {
    return 1 == Settings.System.getInt(mContext.getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD, 1);
}

2、 设置系统权限

获取属性值是不需要权限的,但是设置Settings属性值是需要权限的:

<uses-permission android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" />

该权限是系统权限,需要系统应用才能得到。

3、实际修改的Settings的属性

从Android原生设置Settings.java 代码看:

/**
* Setting to showing password characters in text editors. 1 = On, 0 = Off
*/
public static final String TEXT_SHOW_PASSWORD = "show_password";

4、adb控制密码是否短暂可见

所以adb 也可以控制:

//获取是否设置密码短暂显示(默认/未设置前为null)
adb shell settings get system show_password

//设置密码短暂显示
adb shell settings put system show_password 1

//设置密码不短暂显示
adb shell settings put system show_password 0