无法接收ACTION_PASSWORD_SUCCEEDED和ACTION_PASSWORD_FAILED意图

Ion*_*non 5 java android android-intent

我正在使用Android的Administration 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=======================");        
}
Run Code Online (Sandbox Code Playgroud)

在启用,已禁用和PW已更改工作时,但密码失败并且成功则不然.奇怪的是,他们偶尔随机工作,然后停止工作.我的代码有什么问题,或者这可能是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>
Run Code Online (Sandbox Code Playgroud)

固定

发现问题,似乎没有记录.我用dpm.setPasswordMinimumLength()设置了最小密码长度.如果输入的密码小于最小长度,则密码输入活动不会触发PASSWORD_FAILED意图.此外,只有在成功输入错误密码(PASSWORD_FAILED已触发)之前,才会触发PASSWORD_SUCCEEDED.因此连续两个成功的密码不会触发第二个意图.

ven*_*kat 0

您可以使用 android.intent.action.USER_PRESENT。每当用户解锁设备时就会触发此意图。您可以注册一个广播接收器,它将捕获 android.intent.action.USER_PRESENT 来检测设备解锁事件。