首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin -在电话解锁事件中检测正确或错误的pin

Xamarin -在电话解锁事件中检测正确或错误的pin
EN

Stack Overflow用户
提问于 2019-04-26 08:48:23
回答 1查看 282关注 0票数 0

我刚来Xamarin。我希望当用户尝试登录他的电话(设备级别,而不是应用程序)时,能够检测到错误/正确的密码。我尝试过DeviceAdminReceiver类,但它没有触发OnPasswordFailed/OnPasswordSucceeded方法。请参考下面的代码:

接收器

代码语言:javascript
复制
[BroadcastReceiver(Enabled = true)]
    [Android.Runtime.Register("android/app/admin/DeviceAdminReceiver", DoNotGenerateAcw = true)]
    public class LoginWatcher : BroadcastReceiver
    {
        public override void OnReceive(Context context, Intent intent)
        {
            Toast.MakeText(context, "OnReceive",
            ToastLength.Long).Show();
        }

        public void OnDisabled(Context context, Intent intent)
        {
            Toast.MakeText(context, "OnDisabled",
            ToastLength.Long).Show();
        }


        public void OnEnabled(Context context, Intent intent)
        {
            Toast.MakeText(context, "OnEnabled",
            ToastLength.Long).Show();
        }

        public void OnPasswordChanged(Context context, Intent intent)
        {
            Toast.MakeText(context, "OnPasswordChanged",
            ToastLength.Long).Show(); 
        }

        public void OnPasswordExpiring(Context context, Intent intent)
        { 
            Toast.MakeText(context, "OnPasswordExpiring",
            ToastLength.Long).Show(); 
        }

        public void OnPasswordFailed(Context context, Intent intent)
        {
            Toast.MakeText(context, "OnPasswordFailed", ToastLength.Long).Show();
        }


        public void OnPasswordSucceeded(Context context, Intent intent)
        {
            Toast.MakeText(context, "OnPasswordSucceeded", ToastLength.Long).Show();
        }
    }

清单

代码语言:javascript
复制
<receiver android:name=".LoginWatcher" android:label="@string/sample_device_admin" android:description="@string/sample_device_admin_description" android:permission="android.permission.BIND_DEVICE_ADMIN">
        <meta-data android:name="android.app.device_admin" android:resource="@drawable/device_policies" />
        <intent-filter>
            <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
            <action android:name="android.app.action.DEVICE_ADMIN_DISABLE_REQUESTED" />
            <action android:name="android.app.action.DEVICE_ADMIN_DISABLED" />
            <action android:name="android.app.action.ACTION_PASSWORD_CHANGED" />
            <action android:name="android.app.action.ACTION_PASSWORD_EXPIRING" />
            <action android:name="android.app.action.ACTION_PASSWORD_FAILED" />
            <action android:name="android.app.action.ACTION_PASSWORD_SUCCEEDED" />
        </intent-filter>
    </receiver>

    <uses-permission android:name="android.permission.BIND_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 />
    <disable-keyguard-features />
  </uses-policies>
</device-admin>
EN

回答 1

Stack Overflow用户

发布于 2019-04-28 14:33:16

您可以设置一个DeviceAdminReceiver,以便在密码尝试失败以及尝试失败后密码尝试成功时收到通知。documentation of Android's device administration APIs中介绍了这一点。

请注意,在您获得这些事件之前,用户必须同意允许您的应用程序通过设置应用程序作为设备管理员。This sample project演示了如何侦听这些事件,以及如何设置密码质量策略。

下面是您可以查看的相同线程:Xamarin MonoAndroid DeviceAdmin

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55859361

复制
相关文章

相似问题

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