Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android仿支付寶手勢密碼解鎖功能

Android仿支付寶手勢密碼解鎖功能

編輯:關於Android編程

Starting

創建手勢密碼可以查看 CreateGestureActivity.java 文件.

登陸驗證手勢密碼可以看 GestureLoginActivity.java 文件.

Features

使用了 JakeWharton/butterknife butterknife

使用了 ACache 來存儲手勢密碼

/** 
 * 保存手勢密碼 
 */
 
private void saveChosenPattern(List<LockPatternView.Cell> cells) 
{ 
 byte[] bytes = LockPatternUtil.patternToHash(cells);
 aCache.put(Constant.GESTURE_PASSWORD, bytes);
}

Warning: 使用 ACache 類保存密碼並不是無限期的. 具體期限可以查看 ACache 類.

使用了 SHA 算法保存手勢密碼

/** 
 * Generate an SHA-1 hash for the pattern.
 * Not the most secure, but it is at 
 * least a second level of protection. First level is that the file is in a 
 * location only readable by the system process.*
 * @param pattern 
 * @return the hash of the pattern in a byte array. 
 */
public static byte[] patternToHash(List<LockPatternView.Cell> pattern)
 { 
  if (pattern == null) {  
   return null;
  } else { 
   int size = pattern.size();  
   byte[] res = new byte[size]; 
   for (int i = 0; i < size; i++) {  
    LockPatternView.Cell cell = pattern.get(i);
    res[i] = (byte) cell.getIndex();
   }  
   MessageDigest md = null;
   try {
    md = MessageDigest.getInstance("SHA-1");   
    return md.digest(res);
    } catch (NoSuchAlgorithmException e) {
    e.printStackTrace();   
    return res;
   }
  }
 }

可以開啟震動模式,當選中一個圈的時候,手機會震動

/** * Set whether the view will use tactile feedback. 
 *If true, there will be 
 * tactile feedback as the user enters the pattern. 
 * @param tactileFeedbackEnabled Whether tactile feedback is enabled 
 */
 
public void setTactileFeedbackEnabled(boolean tactileFeedbackEnabled) {
 mEnableHapticFeedback = tactileFeedbackEnabled;
}

可以開啟繪制路徑隱藏模式

/** 
 * Set whether the view is in stealth mode. If true, there will be no 
 * visible feedback as the user enters the pattern. 
 * @param inStealthMode Whether in stealth mode. 
 */public void setInStealthMode(boolean inStealthMode) {
 mInStealthMode = inStealthMode;
}

Example

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved