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); }
}
调用--->>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 手机的 指纹管理 界面了,可以录入指纹了:

Android-引导用户指纹录入的更多相关文章
- 检查Android是否支持指纹识别以及是否已经录入指纹
原文:检查Android是否支持指纹识别以及是否已经录入指纹 Android M 开始,系统中加入了指纹相关功能. 主要用到的类为:FingerprintManager 只提供三个方法: 返回值 方法 ...
- (转载)Android引导界面实现
Android引导界面实现 Android 2014-07-10 14:47:36 发布 您的评价: 4.0 收藏 3收藏 ViewPager类提供了多界面切换的新效果,是 ...
- 【AGC】引导用户购买提升用户留存率
借助AGC的云数据库.云托管.应用内消息.App Linking等服务,您可以给不同价值用户设置不同的优惠套餐活动,引导用户持续购买,增强用户黏性.判断用户价值,发送营销短信,引导用户参与营销活动,提 ...
- 转:Android 判断用户2G/3G/4G移动数据网络
Android 判断用户2G/3G/4G移动数据网络 在做 Android App 的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需要根据用户当前网络情况来做一些调整的,也可以 ...
- 【 Jquery插件】引导用户如何操作网站功能的向导
Joyride是一个jQuery插件,可以利用它来创建一个引导用户如何操作网站功能的向导.通过定义一个操作步骤顺序,这个插件会在需要操作的HTML元素旁边显示一个帮助说明的Tooltips. http ...
- Android 判断用户2G/3G/4G移动数据网络
Android 判断用户2G/3G/4G移动数据网络 在做 Android App 的时候,为了给用户省流量,为了不激起用户的愤怒,为了更好的用户体验,是需要根据用户当前网络情况来做一些调整的,也可以 ...
- 【微信小程序开发】使用button标签的open-type="getUserInfo"引导用户去授权
一. 前言 小程序官方文档,上面说明 > wx.getUserInfo(OBJECT) 注意:此接口有调整,使用该接口将不再出现授权弹窗,请使用 <button open-type=&qu ...
- Scanner类完成用户键盘录入
l Scanner类 Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,获取到录入的数据. Scanner使用步骤: 导包:import java.util.Scanner; ...
- Android判断用户的网络类型(2/3/4G、wifi)
很多时候需要先判断当前用户的网络,才会继续之后的一些处理逻辑.但网络类型获取这一块,我用我自己的的手机调试时遇到一些问题,这里记录一下. 一加手机一代,移动4G 网络,得到的subtype类型值为17 ...
随机推荐
- 用python计算圆周率Π
一.要求: 1.计算到圆周率后面越多位越好. 2.用进度条显示计算的进度. 3.要求给出圆周率Π的具体计算方法和解释. 二.算法: 1.拉马努金公式: 2.高斯-勒让德公式: 设置初始值: 反复执行以 ...
- C/C++字符串使用整理
在C语言中,字符串有多种操作与处理方法.话不多说,下面就整理一下C语言中字符串的使用整理. 1.头文件 字符串的头文件: #include<cstring> 2.输入 通常,字符串有多种输 ...
- CentOS 7 安装phpredis和redis(接上一篇centos7安装lnmp)
一.安装扩展phpredis 1.PHP7 安装redis 扩展phpredis cd /root/software wget https://github.com/edtechd/phpredis/ ...
- 48 【golang】json的效率
本文将主要做如下几方面的测试: 1,构造一个[100]struct的数组,然后来测试它的json编码后的字符串 或者([]byte),首先关心它的功能是否正常: 2,在很早之前,我们在使用golang ...
- node杂谈(一)
在node中var作用域为当前js文件 每一个js文件都是一个module对象 global为全局对象,可以用在不同js之间访问(不要设立过多的全局对象,除非必要,比如设立生产环境还是开发环境) a ...
- XUbuntu18.04(Bionic河狸)正式发布,系统安装升级记录
XUbuntu18.04(Bionic河狸)正式发布,系统安装升级记录 详细介绍: https://blog.pythonwood.com/2018/04/XUbuntu18.04(Bionic河狸) ...
- npm与cnpm的install无反应
问题描述 1.npm -v检查版本正常,npm install安装依赖提示超时 2.cnpm -v检查版本正常,cnpm install安装依赖无反应(输入命令后没有任何提示,一直卡在那) 解决(参考 ...
- cocoapods 安装中出的太多问题
前言: 新欢的公司,新买的电脑,新安装 cocoapods.然后开开心心去百度如何安装 cocoapods,前面的步骤我就不说了. 在 pod setup 上之后,网速超慢然后就失败 fatal: T ...
- Spring in Action 第一章 Spring之旅
1.1 简化Java开发 1.1.2 依赖注入(DI) 松耦合:如果一个对象只通过接口(而不是具体实现或初始化过程)来表明依赖关系,那么这种依赖就能在对象本身毫不知情的情况下,用不同的具体实现进行替代 ...
- 项目管理 - PM、 SRS、SOW简介及范例
PM在一个IT项目中的主要管理任务 http://blog.csdn.net/eaglezhang/article/details/1717171 计算机软件需求说明编制指南 http://blog. ...