曾无好事来相访,赖尔高文一起予。这篇文章主要讲述Android-引导用户指纹录入相关的知识,希望能为你提供帮助。
根据不同的手机,跳转到指纹录入界面,如果没有检测到手机的品牌,就提醒用户手动去指纹录入:
首先描述手机信息检测对象,PhoneInfoCheck.java:
package com.esandinfo; import android.app.AlertDialog; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.text.TextUtils; import android.widget.Toast; import com.esandinfo.utils.MyLog; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 描述手机信息的检测对象 */ public class PhoneInfoCheck {private final String SONY = "sony"; private final String OPPO = "oppo"; private final String HUAWEI = "huawei"; private final String HONOR = "honor"; private final String KNT = "knt"; private static PhoneInfoCheck instance = null; public static synchronized PhoneInfoCheck getInstance(Context context, String brand){ if (null == instance) instance = new PhoneInfoCheck(context, brand); return instance; }private Context context; private String brand; private PhoneInfoCheck(Context context, String brand) { this.context = context; this.brand = brand; }/** * 跳转到指纹页面 或 通知用户去指纹录入 */ public void startFingerprint() {String pcgName = null; String clsName = null; if (compareTextSame(SONY)){ pcgName = "com.android.settings"; clsName = "com.android.settings.Settings$FingerprintEnrollSuggestionActivity"; } else if (compareTextSame(OPPO)) { pcgName = "com.coloros.fingerprint"; clsName = "com.coloros.fingerprint.FingerLockActivity"; } else if (compareTextSame(HUAWEI)) { pcgName = "com.android.settings"; clsName = "com.android.settings.fingerprint.FingerprintSettingsActivity"; } else if (compareTextSame(HONOR)) { pcgName = "com.android.settings"; clsName = "com.android.settings.fingerprint.FingerprintSettingsActivity"; } // TODO 后续机型会继续加入的 (Deliliu) // .... else { // 如果以上判断没有符合该机型,那就跳转到设置界面,让用户自己设置吧 // Toast.makeText(context, "请到设置中,找到指纹录入,进行指纹录入操作", Toast.LENGTH_LONG).show(); new AlertDialog.Builder(context) .setTitle("指纹录入") .setMessage("请到设置中,找到指纹录入,进行指纹录入操作") .setPositiveButton("好的,我去录入指纹", null) .show(); // 跳转到Settings页面的Intent /*pcgName = "com.android.settings"; clsName = "com.android.settings.Settings"; */ }if (!TextUtils.isEmpty(pcgName) & & !TextUtils.isEmpty(clsName)) {Intent intent = new Intent(); ComponentName componentName = new ComponentName(pcgName, clsName); intent.setAction(Intent.ACTION_VIEW); intent.setComponent(componentName); context.startActivity(intent); } }/** * 获得当前手机品牌 * @return 例如:HONOR */ private String getBrand() { MyLog.debug("PhoneInfoCheck Board:" + android.os.Build.BRAND + " brand:" + brand); return this.brand; }/** * 对比两个字符串,并且比较字符串是否包含在其中的,并且忽略大小写 * @param value * @return */ private boolean compareTextSame(String value) { return value.toUpperCase().indexOf(getBrand().toUpperCase()) > = 0 ; }@Deprecated public static void main(String[] args) { String str = "java JavA ABC"; Pattern test_ = Pattern.compile("java",Pattern.CASE_INSENSITIVE); Matcher result_ = test_.matcher(str); // str = result_.replaceAll("Perl6"); System.out.println(str); System.out.println(result_); // -----------------------------------String str1 = "abcdefghijklmnabc"; String str2 = "HiJK"; // 查找是否存在指定的字符 System.out.println(str2.indexOf(str1)); // 忽略大小写查找 System.out.println("HONOR".toUpperCase().indexOf("HONOR".toUpperCase()) > = 0); } }
【Android-引导用户指纹录入】
调用---> > PhoneInfoCheck对象,测试:
/** * 引导指纹录入 * @param view */ public void startFingerprint(View view) { final String BRAND = android.os.Build.BRAND; MyLog.debug("BRAND:" + BRAND); PhoneInfoCheck.getInstance(this, BRAND).startFingerprint(); }
布局的Button
< Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="引导指纹录入" android:onClick="startFingerprint" />
日志打印:
PhoneInfoCheck Board:HONOR brand:HONOR
Honor V8 手机:
文章图片
文章图片
以下, 以 honor 手机测试为例: 执行结果:点击按钮:
文章图片
就跳转到了 honor 手机的指纹验证界面了:
文章图片
然后输入密码,点击下一步:
文章图片
然后就进入 honor 手机的 指纹管理 界面了,可以录入指纹了:
文章图片
推荐阅读
- Office Web Apps 2013 修改Excel在线查看文件大小限制
- react使用 create-react-app 构建基于TypeScript的React前端架构----上
- Native APP ,Web APP,Hybrid APP三者对比
- .NET Core中使用AutoMapper
- 安卓逆向学习---深入Smali文件
- 解决升级android studio 3.2.1后 "No toolchains found in the NDK toolchains folder for ABI with prefix
- 创建Flask实例对象时的参数和app.run()中的参数
- NativeWeb AppHybridReact Native(简称RN)Weex 间的异同点。
- android 全屏dialog dialogfragment