FingerprintManager#isHardwareDetected()和FingerprintManager#hasEnrolledFingerprints()。这两种方法在Android 28中都不受欢迎。我还能用什么来看看指纹是否被登记在这个版本中?我认为这是一种选择。
KeyguardManager keyguardManager =
(KeyguardManager) getSystemService(KEYGUARD_SERVICE);如果该选项是可以的,那么如何将其转换为xamarin表单,例如()
FingerprintManagerCompat fpm= FingerprintManagerCompat.From(CrossCurrentActivity.Current.Activity);对此:
发布于 2019-04-08 07:20:46
您可以在Android9.0中使用Plugin.Fingerprint来消除它。https://www.nuget.org/packages/Plugin.Fingerprint/
这是我的GIF演示(如果你第一次运行这个项目,请确保你已经在你的设备中创建指纹)。

因为表单只有一个活动,如果按下auth页面,我们应该实现ActivityLifecycleCallbacks和FingerprintDialogFragment。
这是MainApplication的代码,它需要Plugin.CurrentActivity插件
[Application]
public class MainApplication : Application, Application.IActivityLifecycleCallbacks
{
public MainApplication(IntPtr handle, JniHandleOwnership transer)
: base(handle, transer)
{
}
public override void OnCreate()
{
base.OnCreate();
RegisterActivityLifecycleCallbacks(this);
CrossFingerprint.SetCurrentActivityResolver(() => CrossCurrentActivity.Current.Activity);
// uncomment this line to use custom dialog
//CrossFingerprint.SetDialogFragmentType<MyCustomDialogFragment>();
}
public override void OnTerminate()
{
base.OnTerminate();
UnregisterActivityLifecycleCallbacks(this);
}
public void OnActivityCreated(Activity activity, Bundle savedInstanceState)
{
CrossCurrentActivity.Current.Activity = activity;
}
public void OnActivityDestroyed(Activity activity)
{
}
public void OnActivityPaused(Activity activity)
{
}
public void OnActivityResumed(Activity activity)
{
CrossCurrentActivity.Current.Activity = activity;
}
public void OnActivitySaveInstanceState(Activity activity, Bundle outState)
{
}
public void OnActivityStarted(Activity activity)
{
CrossCurrentActivity.Current.Activity = activity;
}
public void OnActivityStopped(Activity activity)
{
}
}这是MyCustomDialogFragment的代码
public class MyCustomDialogFragment : FingerprintDialogFragment
{
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Create your fragment here
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
var view = base.OnCreateView(inflater, container, savedInstanceState);
view.Background = new ColorDrawable(Color.Blue);
return view;
}
}这是我的演示代码。
https://stackoverflow.com/questions/55540809
复制相似问题