{"id":321,"date":"2020-04-01T13:22:17","date_gmt":"2020-04-01T05:22:17","guid":{"rendered":"https:\/\/badgameshow.com\/fly\/?p=321"},"modified":"2021-02-17T17:44:38","modified_gmt":"2021-02-17T09:44:38","slug":"android-%e6%8c%87%e7%b4%8b%e8%be%a8%e8%ad%98","status":"publish","type":"post","link":"https:\/\/badgameshow.com\/fly\/android-%e6%8c%87%e7%b4%8b%e8%be%a8%e8%ad%98\/","title":{"rendered":"Android \u6307\u7d0b\u8fa8\u8b58"},"content":{"rendered":"<h4>\u8072\u660e\u6b0a\u9650<\/h4>\n<pre><code class=\"language-XML line-numbers\">&lt;uses-permission android:name=\"android.permission.USE_FINGERPRINT\" \/&gt;\n<\/code><\/pre>\n<h3>1.\u5275\u5efa\u6307\u7d0b\u8fa8\u8b58\u7269\u4ef6<\/h3>\n<pre><code class=\"language-Java line-numbers\">FingerprintManagerCompat fingerManager = FingerprintManagerCompat.from(activity);\n<\/code><\/pre>\n<h3>2.\u5224\u65b7\u786c\u9ad4\u652f\u6301\u8207\u8a3b\u518a\u6307\u7d0b<\/h3>\n<pre><code class=\"language-Java line-numbers\">\/\/\u5224\u65b7\u786c\u9ad4\u662f\u5426\u652f\u6301\nboolean isHardwareDetected = fingerManager.isHardwareDetected();\n\/\/\u5224\u65b7\u662f\u5426\u8a3b\u518a\u6307\u7d0b\nboolean hasEnrolledFingerprints = fingerManager.hasEnrolledFingerprints();\n<\/code><\/pre>\n<h3>3.\u8abf\u7528\u8a8d\u8b49callback<\/h3>\n<h4>FingerprintManagerCompat.CryptoObject<\/h4>\n<p>\u9019\u662f\u4e00\u500b\u52a0\u5bc6\u985e,\u5728java\u4e2d\u52a0\u5bc6\u6240\u7528\u7684\u985e\u662fCipher,Signature,Mac<\/p>\n<h4>flags<\/h4>\n<p>\u9019\u662f\u4e00\u500boptinal,\u9019\u88e1\u5fc5\u9808\u662f0<\/p>\n<h4>CancellationSignal<\/h4>\n<p>\u9019\u662f\u4e00\u500b\u4fe1\u865f\u985e,\u76f4\u63a5new CancellationSignal(),\u53ef\u4ee5\u53d6\u6d88\u6307\u7d0b\u6383\u63cf\u7b49\u64cd\u4f5c<\/p>\n<h4>FingerprintManagerCompat.AuthenticationCallback callback<\/h4>\n<p>\u6307\u7d0b\u8b58\u5225\u7d50\u679c\u7684\u76e3\u807d\u985e,\u6240\u6709\u7684\u7ed3\u679c\u8655\u7406\u90fd\u5728\u9019\u500b\u985e\u4e2d<\/p>\n<h4>Handler handler<\/h4>\n<p>\u901a\u5e38\u53ea\u662f\u7528\u4f86\u544a\u77e5\u5728\u54ea\u500b\u7dda\u7a0b\u4e2d\u8fd4\u56de\u7ed3\u679c,\u4e00\u822c\u70banull,\u9ed8\u8a8d\u6703\u5728\u4e3b\u7dda\u7a0b\u4e2d\u56de\u6389\u6383\u63cf\u7d50\u679c<\/p>\n<pre><code class=\"language-Java line-numbers\">fingerManager.authenticate(null, 0, new CancellationSignal(), new FingerprintManagerCompat.AuthenticationCallback() {\n    @Override\n    public void onAuthenticationError(int errMsgId, CharSequence errString) {\n           super.onAuthenticationError(errMsgId, errString);\n           \/\/\u6307\u7eb9\u6383\u63cf\u51fa\u932f\n    }\n\n    @Override\n    public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) {\n           super.onAuthenticationHelp(helpMsgId, helpString);\n           \/\/\u6307\u7eb9\u6383\u63cf\u9047\u5230\u53ef\u88dc\u6551\u7684\u932f\u8aa4\u63d0\u793a\n    }\n\n     @Override\n     public void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult result) {\n           super.onAuthenticationSucceeded(result);\n           \/\/\u6307\u7d0b\u6b63\u78ba\n     }\n\n     @Override\n     public void onAuthenticationFailed() {\n           super.onAuthenticationFailed();\n           \/\/\u6307\u7eb9\u4e0d\u6b63\u78ba\n     }\n},null);\n<\/code><\/pre>\n\n<div style=\"font-size: 0px; height: 0px; line-height: 0px; margin: 0; padding: 0; clear: both;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>\u8072\u660e\u6b0a\u9650 &lt;uses-permission android:name=&#8221;android.permissi &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[5],"tags":[13,49,14],"class_list":["post-321","post","type-post","status-publish","format-standard","hentry","category-android","tag-android","tag-fingerprintmanager","tag-java"],"_links":{"self":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/comments?post=321"}],"version-history":[{"count":3,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/321\/revisions"}],"predecessor-version":[{"id":1148,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/321\/revisions\/1148"}],"wp:attachment":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/media?parent=321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/categories?post=321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/tags?post=321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}