首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生物识别技术.安卓派上的FingerprintManager Xamarin表格-9

生物识别技术.安卓派上的FingerprintManager Xamarin表格-9
EN

Stack Overflow用户
提问于 2019-04-05 17:43:59
回答 1查看 832关注 0票数 1

FingerprintManager#isHardwareDetected()和FingerprintManager#hasEnrolledFingerprints()。这两种方法在Android 28中都不受欢迎。我还能用什么来看看指纹是否被登记在这个版本中?我认为这是一种选择。

代码语言:javascript
复制
KeyguardManager keyguardManager =
                    (KeyguardManager) getSystemService(KEYGUARD_SERVICE);

如果该选项是可以的,那么如何将其转换为xamarin表单,例如()

代码语言:javascript
复制
FingerprintManagerCompat fpm= FingerprintManagerCompat.From(CrossCurrentActivity.Current.Activity);

对此:

EN

回答 1

Stack Overflow用户

发布于 2019-04-08 07:20:46

您可以在Android9.0中使用Plugin.Fingerprint来消除它。https://www.nuget.org/packages/Plugin.Fingerprint/

这是我的GIF演示(如果你第一次运行这个项目,请确保你已经在你的设备中创建指纹)。

因为表单只有一个活动,如果按下auth页面,我们应该实现ActivityLifecycleCallbacksFingerprintDialogFragment

这是MainApplication的代码,它需要Plugin.CurrentActivity插件

代码语言:javascript
复制
    [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的代码

代码语言:javascript
复制
   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://github.com/851265601/FrigerPrintDemo

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

https://stackoverflow.com/questions/55540809

复制
相关文章

相似问题

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