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 ...
随机推荐
- 2018-2019-2 20175218 实验一《Java开发环境的熟悉》实验报告
实验内容.步骤与体会: 1.实验过程的理解,实验指导书中知识点的理解. (1)知道了JVM.JRE.JDK之间的区别. JVM就是我们熟知的Java虚拟机:JRE是Java运行环境:而JDK则是Jav ...
- pwnable.kr-fd-witeup
登录进远程电脑,看到flag,查看内容,权限不够失败咯,ls -la看看权限. 欧克,fd用户对flag只用可读权限,但是呢,看到fd用户对fd文件有s权限,它指设置使当前在执行阶段具有文件所有者的权 ...
- bootloaderd的再解析
boot的0脚和1脚可以选择启动方式,以前只知道可以选择的方式是nandflash启动,或者选择从norflash启动,当选择nandflash启动时,cpu看到的0地址是ram的0地址,根据是nan ...
- 词根:lun = moon, 表示“月亮”
词根:lun = moon, 表示“月亮” lunar [lun月亮,-ar形容词后缀,…的] 月亮的,太阴的,似月的,新月形的 semilunar [semi-半,lun月亮,-ar形容词后缀,…的 ...
- pom.xml文件释义
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- Python深拷贝和浅拷贝!
在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用 一般有三种方法, alist=[1,2,3,[& ...
- 使用nifi采集数据要配置的环境
第一步 安装 Anaconda3-2019.03-Windows-x86_64.exe 下载地址:https://repo.anaconda.com/archive/Anaconda3-2019.03 ...
- bhttpd
以前产品应用是用串口做控制台,写了一个带简单命令历史和命令补全功能的控制台Shell,用作程序的调试,包括查看系统状态和调试修改设定等等.确实非常好用,对很多现场简单问题的快速定位起到了很好的作用.系 ...
- jquery 全选、反选、获取值、背景行、隔行变色和鼠标略过变色变色全特效
好久没有写东西了,当然不是没东西可写,只是没有时间写.今天抽出点时间来把我最近使用的一些 Javascript 特效的东西贴出来,供自己或者别人查询使用.最近我在做一个新的 B/S 系统,由于没有专门 ...
- jmeter javamail 邮件格式再优化(由详情——>改为统计)
前言:之前扩展的ant—jmeter支持邮件附件形式上传以及邮件内容的html文件格式. 如图: 由于邮件的内容格式是详情信息,也就是说直观的显示的是case,但由于case的增加,邮件内容越来越大! ...