I recently pushed the first stable version of my fingerprint plugin for xamarin to NuGet. It allows you to authenticate a user via the fingerprint sensor. The code is available on github. For me it’s just a project to play around with some interesting things (e.g. FAKE build scripts) and build something useful.
Give it a try
Testing on Simulators
You don’t need to own a device with a fingerprint sensor to test this functionality. The simulators offer functionality to simulate fingerprint events.
With the Hardware menu you can
- Toggle the enrolment status
- Trigger valid (⌘ ⌥ M) and invalid (⌘ ⌥ N) fingerprint sensor events
- start the emulator (Android >= 6.0)
- open the settings app
- go to Security > Fingerprint, then follow the enrolment instructions
- when it asks for touch
- open command prompt
telnet 127.0.0.1 <emulator-id>(
adb devicesprints “emulator-<emulator-id>”)
finger touch 1
finger touch 1
Sending fingerprint sensor events for testing the plugin can be done with the telnet commands, too.
Note for Windows users: You have to enable telnet: Programs and Features > Add Windows Feature > Telnet Client
The API is described in the readme file of my github repository.
Support & Limitations
The supported platforms are:
- Android >= 6.0
- iOS >= 8.0
- Windows UWP >= 10.0
The dialog on iOS is programmatically cancelable since iOS 9.0. All other platforms are “supported” with a default implementation where
IsAvailable returns false and
AuthenticateAsync returns a failed authentication result.
The two main future things are the following:
Samsung Pass integration
Before Android Marshmallow, Samsung had its own fingerprint technology / library called pass. I will create a binding for this library. I’ll try to create an modular architecture that allows to use the Android and the Samsung implementation or just one of them.
Feedback from James Montemagno
Thanks to James Montemagno for sending over some helpful feedback.
I think James is right with the suggestion to adjust the namespaces to fit more into his established Plugin world and that one of MvvMCross. Even in MvvMCross 4.0 the personal namespace parts (Cirrious) from Stuart got removed, because MvvMCross got alot input from the community. And think my plugin should follow.
Get rid of current activity resolver
The idea behind
SetCurrentActivityResolver was to be independent from other plugins. If I do the namespace refactoring, I think it’s a logical consequence to use James’ Current Activity plugin as well. And it will reduce the setup effort as well.
It may be useful to implement more properties like
IsEnrolled, that tell you the state of the fingerprint sensor in more detail than