我刚来Xamarin。我希望当用户尝试登录他的电话(设备级别,而不是应用程序)时,能够检测到错误/正确的密码。我尝试过DeviceAdminReceiver类,但它没有触发OnPasswordFailed/OnPasswordSucceeded方法。请参考下面的代码:
接收器
[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();
}
}清单
<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" />政策
<?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>发布于 2019-04-28 14:33:16
您可以设置一个DeviceAdminReceiver,以便在密码尝试失败以及尝试失败后密码尝试成功时收到通知。documentation of Android's device administration APIs中介绍了这一点。
请注意,在您获得这些事件之前,用户必须同意允许您的应用程序通过设置应用程序作为设备管理员。This sample project演示了如何侦听这些事件,以及如何设置密码质量策略。
下面是您可以查看的相同线程:Xamarin MonoAndroid DeviceAdmin
https://stackoverflow.com/questions/55859361
复制相似问题