【发布时间】:2011-11-09 15:32:23
【问题描述】:
我正在使用 Android 的管理 API 并有一个 DeviceAdminReceiver,并覆盖以下函数:
@Override
public void onEnabled(Context context, Intent intent)
{
System.out.println("Admin On======================");
}
@Override
public void onDisabled(Context context, Intent intent)
{
System.out.println("Admin Off======================");
}
@Override
public void onPasswordFailed(Context context, Intent intent)
{
System.out.println("PW Bad============================");
}
@Override
public void onPasswordSucceeded(Context context, Intent intent)
{
System.out.println("PW Good===========================");
}
@Override
public void onPasswordChanged(Context context, Intent intent)
{
System.out.println("Changed PW=======================");
}
On enabled、Disabled 和 PW changed 工作,但是密码失败和成功都没有。奇怪的是,他们偶尔会随机工作一次,然后停止工作。我的代码有什么问题吗,或者这可能是 API 问题?
AndroidMaifest 中的接收者
<receiver android:name="AdminReciever"
android:label="Administration"
android:permission="android.permission.BIND_DEVICE_ADMIN" android:enabled="true">
<meta-data android:name="android.app.device_admin"
android:resource="@xml/adminpolicies" />
<intent-filter>
<action android:name="android.app.action.ACTION_PASSWORD_SUCCEEDED"/>
<action android:name="android.app.action.ACTION_PASSWORD_FAILED"></action>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED"></action>
<action android:name="android.app.action.ACTION_PASSWORD_CHANGED"></action>
</intent-filter>
</receiver>
已修复
发现了问题,似乎没有记录。我用 dpm.setPasswordMinimumLength() 设置了最小密码长度。如果输入的密码小于最小长度,密码输入活动不会触发 PASSWORD_FAILED 意图。 PASSWORD_SUCCEEDED 也仅在成功密码之前输入错误密码(PASSWORD_FAILED 触发)时触发。所以连续两个成功的密码不会触发第二个意图。
【问题讨论】:
-
你是怎么解决这个问题的?我将最小长度设置为 0,但我仍然没有得到失败的 'cast。我在想其他一些组件设置了最小长度,在这种情况下,我无能为力。有什么想法吗?
-
是的 loncannon 请指导我们,你是如何解决这个问题的?如何掌握每次输入的密码,无论是错误的还是好的。卡住了:/
-
这是不久前的事了,所以如果我“修复”了它,我想不起来了。上述问题是针对一个很久以前完成的研究项目。我想 FIXED 不是最好的标题,而是我想出了为什么会出现一些奇怪的行为。
-
嗨。我有问题。你能帮我吗? stackoverflow.com/questions/55074900/…
标签: java android android-intent