首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DeviceAdminReceiver永远不会被调用

DeviceAdminReceiver永远不会被调用
EN

Stack Overflow用户
提问于 2017-03-19 21:20:03
回答 1查看 1.8K关注 0票数 0

我成功地获得了管理员特权--一切正常。唯一的问题是,DeviceAdminReceiver从未被调用,我正在尝试检查失败密码的数量。

代码语言:javascript
复制
public class MyAdminReceiver extends DeviceAdminReceiver {

void showToast(Context context, CharSequence msg) {
    Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}

@Override
public void onPasswordFailed(Context context, Intent intent) {
    showToast(context, "Sample Device Admin: pw failed");
    Log.d("Hello", "onPasswordFailed");
    DevicePolicyManager mgr = (DevicePolicyManager)context.getSystemService(Context.DEVICE_POLICY_SERVICE);
    int no = mgr.getCurrentFailedPasswordAttempts();


    if (no >= 3) {
        showToast(context, "3 failure");
        mgr.resetPassword("111111", DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);
        //mgr.lockNow();
    }
}


@Override
public void onEnabled(Context context, Intent intent) {
    showToast(context, "Sample Device Admin: enabled");
}

@Override
public CharSequence onDisableRequested(Context context, Intent intent) {
    return "This is an optional message to warn the user about disabling.";
}

@Override
public void onDisabled(Context context, Intent intent) {
    showToast(context, "Sample Device Admin: disabled");
}

@Override
public void onPasswordChanged(Context context, Intent intent) {
    showToast(context, "Sample Device Admin: pw changed");
}



@Override
public void onPasswordSucceeded(Context context, Intent intent) {
    showToast(context, "Sample Device Admin: pw succeeded");
}

}

我也在我的舱单上声明了

代码语言:javascript
复制
 <receiver
        android:name=".MyAdminReceiver"
        android:permission="android.permission.BIND_DEVICE_ADMIN">
        <meta-data android:name="android.app.device_admin"
            android:resource="@xml/device_admin" />
        <intent-filter>
            <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
        </intent-filter>
    </receiver>

和device_admin

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-policies>
        <limit-password />
        <watch-login />
        <reset-password />
        <force-lock />
        <wipe-data />
        <expire-password />
        <encrypted-storage />
        <disable-camera />
    </uses-policies>
</device-admin>

有人能给我提个建议吗?原因是什么?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-21 09:36:09

也许改变

代码语言:javascript
复制
<intent-filter>
    <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
</intent-filter>

代码语言:javascript
复制
<intent-filter>
    <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
    <action android:name="android.app.action.ACTION_PASSWORD_FAILED"/>
    <action android:name="android.app.action.ACTION_PASSWORD_SUCCEEDED"/>
</intent-filter> 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42892414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档