Вы можете использовать Plugin.Fingerprint
, чтобы получить его в Android 9.0.https://www.nuget.org/packages/Plugin.Fingerprint/
Это мой демонстрационный GIF-файл (если вы впервые запускаете этот проект, убедитесь, что на вашем устройстве создан отпечаток пальца).
Поскольку формы имеют только одно действие, Если нажать на страницу авторизации, мы должны достичь 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://github.com/851265601/FrigerPrintDemo