{"id":4590,"url":"https://github.com/williamtran29/react-native-fingerprint-identify","last_synced_at":"2025-10-28T00:09:10.584Z","repository":{"id":57336980,"uuid":"90383110","full_name":"williamtran29/react-native-fingerprint-identify","owner":"williamtran29","description":"Awesome Fingerprint Identify for react-native (android only)","archived":false,"fork":false,"pushed_at":"2017-11-24T10:25:56.000Z","size":1389,"stargazers_count":89,"open_issues_count":4,"forks_count":13,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-15T05:15:03.063Z","etag":null,"topics":["android","fingerprint","fingerprint-authentication","java","javascript","react","reactnative","scan","scanning"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/williamtran29.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-05T14:14:58.000Z","updated_at":"2024-09-30T14:51:20.000Z","dependencies_parsed_at":"2022-09-12T09:51:42.319Z","dependency_job_id":null,"html_url":"https://github.com/williamtran29/react-native-fingerprint-identify","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/williamtran29/react-native-fingerprint-identify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamtran29%2Freact-native-fingerprint-identify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamtran29%2Freact-native-fingerprint-identify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamtran29%2Freact-native-fingerprint-identify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamtran29%2Freact-native-fingerprint-identify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/williamtran29","download_url":"https://codeload.github.com/williamtran29/react-native-fingerprint-identify/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamtran29%2Freact-native-fingerprint-identify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281043173,"owners_count":26434438,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-25T02:00:06.499Z","response_time":81,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","fingerprint","fingerprint-authentication","java","javascript","react","reactnative","scan","scanning"],"created_at":"2024-01-05T20:17:17.263Z","updated_at":"2025-10-28T00:09:10.568Z","avatar_url":"https://github.com/williamtran29.png","language":"Java","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=5A4DTX8DE85VN"],"categories":["Components","Java"],"sub_categories":["System"],"readme":"# react-native-fingerprint-identify\n\nFingerprint android auth for react-native (Android only).\n\nThis is an expandable Android fingerprint API compatible lib, which also combines [Samsung](http://developer.samsung.com/galaxy/pass#) and [MeiZu](http://open-wiki.flyme.cn/index.php?title=%E6%8C%87%E7%BA%B9%E8%AF%86%E5%88%ABAPI)'s official Fingerprint API.\n\nSamsung and MeiZu's fingerprint SDK supports most devices which system versions less than Android 6.0.\n\nApi priority level：Android \u003e Samsung \u003e MeiZu, Xiaomi,...\n\n# Demo\n\n\n![](./demo.gif)\n\n\n\n# Getting started\n\n`$ npm install react-native-fingerprint-identify --save`\n\n\n## Most automatic installation\n\n`$ react-native link react-native-fingerprint-identify`\n\n##### Make sure the following lines in `android/app/build.gradle`:\n```\nandroid {\n    compileSdkVersion 25\n    buildToolsVersion \"25.0.2\"\n...\n    defaultConfig {\n      targetSdkVersion 25\n\n```\n\n## Manual Installation\n\n##### Open up `android/app/src/main/java/[...]/MainApplication.java`\n\n\n  + Add `import com.fingerprint.identify.RNFingerprintIdentifyPackage;`\n\n    to the imports at the top of the file\n\n\n  + Add `new RNFingerprintIdentifyPackage()`\n\n    to the list returned by the `getPackages()` method\n\n##### Append the following lines to `android/settings.gradle`:\n```  \t\n  \tinclude ':react-native-fingerprint-identify'\n  \tproject(':react-native-fingerprint-identify').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-fingerprint-identify/android')\n```\n\n##### Make sure the following lines in `android/app/build.gradle`:\n```\nandroid {\n    compileSdkVersion 25\n    buildToolsVersion \"25.0.2\"\n...\n    defaultConfig {\n      targetSdkVersion 25\n\n```\n\n##### Insert the following lines inside the dependencies block in `android/app/build.gradle`\n\nin dependencies block\n```\n  compile project(':react-native-fingerprint-identify')\n```  \t\n\n# Example\n\nPlease clone repo and look on the example project to get more details\n\n```javascript\nimport FingerprintIdentify from 'react-native-fingerprint-identify';\nimport { Platform } from 'react-native'\n\n// Make sure you run in Android Platform condition\nscanFingerprint = async () =\u003e {\n  if (Platform.OS === 'android') {\n    try {\n      const initFingerPrintIdentify = await FingerprintIdentify.initFingerPrintIdentify()\n      const isSensorAvailable = await FingerprintIdentify.isSensorAvailable()\n      if (initFingerPrintIdentify \u0026\u0026 isSensorAvailable) {\n        await FingerprintIdentify.startIdentify((status) =\u003e {\n          console.log(status)\n        })\n      }\n    } catch (error) {\n      console.log(error)\n      return\n    }\n  }\n}\n\n```\n\n# Usage\n\n### Easy custom error message with error codes. ###\n\n## Errors on startIdentify() function:\n```\nERROR_NOT_AVAILABLE\nERROR_NOT_MATCH\nERROR_NOT_MATCH_AND_CHANCES_LEFT:(AvailableTimes)\n```\n\n## Errors on isSensorAvailable() function:\n```\nERROR_HARDWARE: The device does not support fingerprint scanning.\nERROR_ENROLLED: No fingerprints registered.\nERROR_PERMISSION: App has no permission.\nERROR_INITIALIZED: The FingerPrintIdentify can not initialize\n```\n\n\n### Init FingerprintIdentify before request scan. ###\n```\nFingerprintIdentify.initFingerPrintIdentify()\n```\n\n\n### Promise returns true if success and string error in other cases (including case when you have sensor, but not enabled it in your phone's settings) ###\n```\nFingerprintIdentify.isSensorAvailable()\n```\n\n\n### Starting scan finger print and get the result in the callback function, returns true if success and string error in other cases. ###\n```\nFingerprintIdentify.startIdentify((val) =\u003e console.log(val))\n```\n\n\n### Removing event listener (fingerprint identity status) - prevent crash App after authentication, usually put in componentWillUnmount() ###\n```\nFingerprintIdentify.dismiss()\n```\n\n\n### Removing event listener to scan fingerprint and also cancel identify ###\n```\nFingerprintIdentify.cancelIdentify()\n```\n\n# Troubleshooting\n\nIf you make five wrong fingerprint attempts, Android Fingerprint API requires some time to continue work on the sensor.\n\nIn that case `FingerprintIdentify.startIdentify()` locked out, so it would be good to make the user aware that sensor is temporarily unavailable (near 30 seconds).\n\n\n# Questions or suggestions?\n\nFeel free to [open an issue](https://github.com/williamtran29/react-native-fingerprint-identify/issues)\n\n# Donation\nIf this project help you reduce time to develop, you can give me a cup of coffee :)\n\n[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=5A4DTX8DE85VN)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliamtran29%2Freact-native-fingerprint-identify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilliamtran29%2Freact-native-fingerprint-identify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliamtran29%2Freact-native-fingerprint-identify/lists"}