当前位置: 首页 > news >正文

杭州怎样建设网站八年级学生做的简易网站

杭州怎样建设网站,八年级学生做的简易网站,网站的资讯内容,中国移动和办公app下载Android M指纹的资料太少#xff0c;经过一段时间阅读原生Android代码#xff0c;写了以下例子#xff0c;贡献出来给需要帮助的人。以下内容基于64位的高通CPU#xff0c;搭载fpc1020芯片#xff0c;此部分代码在原生android上做了更改#xff0c;以应付工厂指纹的测试。…Android M指纹的资料太少经过一段时间阅读原生Android代码写了以下例子贡献出来给需要帮助的人。以下内容基于64位的高通CPU搭载fpc1020芯片此部分代码在原生android上做了更改以应付工厂指纹的测试。原生android指纹录入需要采集10次(因不同的芯片而定)。代码简单说明1. FingerPrintEnrollBase类重要的是Java代码public interface Listener {void onEnrollmentHelp(CharSequence helpString);void onEnrollmentError(int errMsgId, CharSequence errString);void onEnrollmentProgressChange(int steps, int remaining);}这个接口。1)onEnrollmentHelp函数:是下层返回的指纹操作帮助信息。2)onEnrollmentError函数是下层返回的错误信息errMsgId是错误信息类型其中1表示指纹硬件不可用3表示超时5表示操作已取消。errString是errMsgId对应的文字信息有需要的自己实验就知道了。3)onEnrollmentProgressChange()函数是显示当前指纹的采集情况steps总共需要录入多少次remaining是剩余多少次我在此函数中有打印Log。2. FingerPrintActivity是主Activity类FingerPrintEnrollBase是指纹Base类。需要特别说明的是在FingerPrintEnrollBase类中有一句private byte[] mToken new byte[69];这个数组正常情况是通过输入密码后经由framework层向hal层申请的我这里为了省去验证那一块的代码通过sizeof(hw_auth_token_t)计算出来的为69需要的请依此计算。我在代码里实验过此数组如果不是69(在64位CPU上)将直接导致程序crach!fpc指纹的采集流程图源码如下FingerPrintEnrollBaseJava代码/** Copyright (C) 2015 The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the License);* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an AS IS BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License*/package com.mediatek.test;import android.app.Activity;import android.app.Fragment;import android.content.Context;import android.hardware.fingerprint.FingerprintManager;import android.os.Bundle;import android.os.CancellationSignal;import android.os.Handler;import android.util.Log;/*** local fragment to handle the state around fingerprint enrollment.*/public class FingerPrintEnrollBase extends Fragment {private int mEnrollmentSteps -1;private int mEnrollmentRemaining 0;private Listener mListener;private boolean mEnrolling;private CancellationSignal mEnrollmentCancel;private Handler mHandler new Handler();private byte[] mToken new byte[69];//if byte length ! sizeof(hw_auth_token_t), throws Exceptionprivate boolean mDone;private static final String TAG FingerPrintEnrollBase;Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setRetainInstance(true);}Overridepublic void onAttach(Activity activity) {super.onAttach(activity);}Overridepublic void onStart() {super.onStart();Log.d(TAG, mToken lengthmToken.length);if (!mEnrolling) {FingerprintManager mFpM (FingerprintManager) getActivity().getSystemService(Context.FINGERPRINT_SERVICE);startEnrollment(mFpM);}}Overridepublic void onStop() {super.onStop();if (!getActivity().isChangingConfigurations()) {cancelEnrollment();}}protected void startEnrollment(FingerprintManager mFpM) {mHandler.removeCallbacks(mTimeoutRunnable);mEnrollmentSteps -1;mEnrollmentCancel new CancellationSignal();if(mFpM ! null){mFpM.enroll(mToken, mEnrollmentCancel, 0, mEnrollmentCallback);}mEnrolling true;}protected void cancelEnrollment() {mHandler.removeCallbacks(mTimeoutRunnable);if (mEnrolling) {mEnrollmentCancel.cancel();mEnrolling false;mEnrollmentSteps -1;}}public void setListener(Listener listener) {mListener listener;}public int getEnrollmentSteps() {return mEnrollmentSteps;}public int getEnrollmentRemaining() {return mEnrollmentRemaining;}public boolean isDone() {return mDone;}private FingerprintManager.EnrollmentCallback mEnrollmentCallback new FingerprintManager.EnrollmentCallback() {Overridepublic void onEnrollmentProgress(int remaining) {if (mEnrollmentSteps -1) {mEnrollmentSteps remaining;}mEnrollmentRemaining remaining;mDone remaining 0;if (mListener ! null) {mListener.onEnrollmentProgressChange(mEnrollmentSteps, remaining);}}Overridepublic void onEnrollmentHelp(int helpMsgId, CharSequence helpString) {if (mListener ! null) {mListener.onEnrollmentHelp(helpString);}}Overridepublic void onEnrollmentError(int errMsgId, CharSequence errString) {if (mListener ! null) {mListener.onEnrollmentError(errMsgId, errString);}}};private final Runnable mTimeoutRunnable new Runnable() {Overridepublic void run() {cancelEnrollment();}};public interface Listener {void onEnrollmentHelp(CharSequence helpString);void onEnrollmentError(int errMsgId, CharSequence errString);void onEnrollmentProgressChange(int steps, int remaining);}}FingerPrintActivityJava代码package com.mediatek.test;import java.io.FileInputStream;import java.io.IOException;import java.util.List;import java.util.Timer;import java.util.TimerTask;import android.R.color;import android.app.Activity;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.graphics.Color;import android.os.Bundle;import android.os.CancellationSignal;import android.os.Handler;import android.os.Message;import android.text.Spannable;import android.text.style.ForegroundColorSpan;import android.util.Log;import android.view.KeyEvent;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.TableRow;import android.widget.TextView;import android.widget.Toast;import com.mediatek.test.R;import android.hardware.fingerprint.Fingerprint;import android.hardware.fingerprint.FingerprintManager;public class FingerPrintActivity extends Activity implements FingerPrintEnrollBase.Listener{private static final String TAG FingerPrintActivity;private MyHandler mHandler new MyHandler();private TextView fingerPrintAcquisitionTextView, fingerPrintEnrollmentErrorView, fingerPrintEnrollmentHelpView;private FingerPrintEnrollBase fpeb;private FingerprintManager mFingerprintManager;Overrideprotected int setTitleId() {return R.string.tittle_fingerprint;}Overrideprotected Activity getActivity() {return this;}Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.fingerprint);fingerPrintAcquisitionTextView (TextView)findViewById(R.id.fingerprint_message);fingerPrintEnrollmentErrorView (TextView)findViewById(R.id.fingerprint_enrollment_error);fingerPrintEnrollmentHelpView (TextView)findViewById(R.id.fingerprint_enrollment_help);mFingerprintManager (FingerprintManager) getActivity().getSystemService(Context.FINGERPRINT_SERVICE);}private void sendMsgToHandler(int msgType, String remark){Message msg Message.obtain();msg.what msgType;Bundle bundle new Bundle();bundle.putString(result, remark);msg.setData(bundle);mHandler.sendMessage(msg);}Overridepublic void onEnrollmentHelp(CharSequence helpString) {Log.d(TAG, onEnrollmentHelphelpString.toString());sendMsgToHandler(3, helpString.toString());}Overridepublic void onEnrollmentError(int errMsgId, CharSequence errString) {Log.d(TAG, onEnrollmentError errMsgIderrMsgId errStringerrString.toString());if(errMsgId 3){//time outpostEnrollment();}else if(errMsgId 1){//hardware lose efficacystartEnrollment();}else if(errMsgId 5){//operation cancel}else{sendMsgToHandler(4, errString.toString());}}Overridepublic void onEnrollmentProgressChange(int steps, int remaining) {Log.d(TAG, onEnrollmentProgressChange);Log.d(TAG, steps steps ||remaining remaining);fingerPrintEnrollmentHelpView.setText();fingerPrintEnrollmentErrorView.setText();sendMsgToHandler(2, getString(R.string.fingerprint_validate_success));buttonS.setEnabled(true);stopFingerprint();}private void startEnrollment(){if (fpeb null) {fpeb new FingerPrintEnrollBase();}fpeb.setListener(this);fpeb.startEnrollment(mFingerprintManager);}private void postEnrollment(){if(mFingerprintManager ! null){mFingerprintManager.postEnroll();}}private void stopFingerprint() {if (fpeb ! null){fpeb.cancelEnrollment();onStop();}}Overrideprotected void onStart() {super.onStart();}Overrideprotected void onStop() {super.onStop();if(fpeb ! null){fpeb.setListener(null);}}Overrideprotected void onResume() {super.onResume();if(mFingerprintManager null){mFingerprintManager (FingerprintManager) getActivity().getSystemService(Context.FINGERPRINT_SERVICE);}startEnrollment();}Overrideprotected void onPause() {super.onPause();postEnrollment();mFingerprintManager null;stopFingerprint();fpeb null;}class MyHandler extends Handler{Overridepublic void handleMessage(Message msg) {Bundle bundle null;super.handleMessage(msg);switch (msg.what) {case 0:removeMessages(0);bundle msg.getData();String result bundle.getString(result);selfTestView.setText(result);selfTestView.setTextColor(result.contains(PASS)?Color.GREEN:Color.RED);break;case 1:removeMessages(1);bundle msg.getData();String rs bundle.getString(result);checkBroadView.setText(bundle.getString(result));checkBroadView.setTextColor(rs.contains(PASS)?Color.GREEN:Color.RED);break;case 2:removeMessages(2);bundle msg.getData();String fingerprint bundle.getString(result);fingerPrintAcquisitionTextView.setText(bundle.getString(result));fingerPrintAcquisitionTextView.setTextColor(fingerprint.contains(PASS)?Color.GREEN:Color.WHITE);mButtonSelftest.setEnabled(true);mButtonCheckerboardTest.setEnabled(true);break;case 3:removeMessages(3);bundle msg.getData();String enrollmentHelp bundle.getString(result);fingerPrintEnrollmentHelpView.setText(bundle.getString(result));break;case 4:removeMessages(4);bundle msg.getData();String enrollmentError bundle.getString(result);fingerPrintEnrollmentErrorView.setText(bundle.getString(result));fingerPrintAcquisitionTextView.setText();break;default:break;}}}}以上就是对Android 指纹资料的整理后续继续补充相关资料谢谢大家对本站的支持
http://www.zqtcl.cn/news/446040/

相关文章:

  • 辣条类网站建设规划书南阳网站推广优化公司
  • 帝国网站做地域标签seo关键词排名查询
  • 西安网站建设xs029免费代理ip最新
  • 网站建设不挣钱海盐建设局网站
  • 潍坊做网站张家口最近一个月的热点事件
  • 套模板的网站多少钱公司付的网站费怎么做分录
  • 做ps找图的网站有哪些响应式设计是什么意思
  • 家教网站建设的推广猪八戒网站做私活赚钱吗
  • 男女做那种的视频网站asp.net做网站怎么样
  • 给企业做网站怎么收钱郑州网站顾问
  • readme.md做网站设计网页的快捷网站
  • 做双语网站用什么cms系统好百度后台管理
  • 什么网站可以做试卷企业的oa管理系统
  • 经典网站模板自己做pc网站建设
  • 网站有源码之后怎么建设网站河北加工活外发加工网
  • 什么网站可以做自媒体外包小程序
  • 建网站_网站内容怎么做网络营销的广告形式
  • 静态网站怎么做留言板关键词有哪些
  • 开发软件自学步骤朝阳seo推广
  • Wordpress有用么网络推广seo怎么做
  • 企业做网站的注意事项深圳市建网站
  • 代做网站关键词怎么自创网页
  • 网站建设资金申请报告深圳物流公司收费标准
  • 全能企业网站管理系统做教案比较好的网站
  • 昆明做网站竞价单页营销型网站建设
  • 网站注销备案查询厦门好的做网站公司
  • 大学生兼职网站做ppt数字化营销模式及特点
  • 网站虚拟主机1gwordpress自定义头像插件
  • 网站建设的栏目策划长沙网站制作价
  • h5商城网站怎么建立建设银行网站号