Android开发:App链接、生物识别认证与应用发布教程
1. Android Studio App链接教程
在Android应用开发中,App链接可以让应用通过特定的URL启动并执行相应的操作。下面详细介绍实现App链接支持的步骤。
1.1 处理App链接的代码实现
在 onCreate 方法中处理App链接的代码如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
// ATTENTION: This was auto-generated to handle app links.
Intent appLinkIntent = getIntent();
String appLinkAction = appLinkIntent.getAction();
Uri appLinkData = appLinkIntent.getData();
if (appLinkAction != null) {
if (appLinkAction.equals("android.intent.action.VIEW")) {
String landmarkId = appLinkData.getLastPathSegment();
if (landmarkId != null) {
displayLandmark(landmarkId);
}
}
} else {
handleIntent(appLinkIntent);
}
}
上述代码的逻辑是:首先获取启动应用的意图,检查动作字符串是否为 android.intent.action.VIEW ,如果是则提取URL路径的最后一部分作为地标ID,并调用 displayLandmark 方法显示相应的地标信息;如果动作字符串为空,则调用 handleIntent 方法处理意图数据。
1.2 测试应用
将应用运行在设备或模拟器上,确保仍然可以搜索示例地标。如果为App链接指定了自己的网站URL,可以通过创建和安装数字资产链接文件进一步测试。
1.3 创建数字资产链接文件
为了完全支持App链接,需要在App链接引用的网站上安装数字资产链接文件。具体步骤如下:
1. 找到 debug.keystore 文件并识别SHA256指纹。
2. 在网页浏览器中打开 数字资产链接生成器 。
3. 在“Hosting site domain”字段中输入网站URL,在“App package name”字段中输入 com.ebookfrenzy.applinking ,在“App package fingerprint (SHA256)”字段中输入SHA256指纹。
4. 点击“Generate statement”按钮生成声明,并将其放在Web服务器上名为 .well-known 的文件夹中的 assetlinks.json 文件中。
5. 返回生成器页面,点击“Test statement”按钮验证文件是否位于正确的位置。
1.4 测试App链接
返回App链接助手面板,点击“Test App Links”按钮。当提示输入要测试的URL时,输入伦敦桥地标ID的URL(使用App链接映射中引用的域名),然后点击“Run Test”按钮。点击按钮后,地标活动应在设备或模拟器上启动,并显示有关伦敦桥的信息。
下面是创建数字资产链接文件的流程图:
graph TD;
A[找到debug.keystore文件并识别SHA256指纹] --> B[打开数字资产链接生成器];
B --> C[输入网站URL、应用包名和SHA256指纹];
C --> D[点击Generate statement按钮生成声明];
D --> E[将声明放在.assetlinks.json文件中];
E --> F[点击Test statement按钮验证文件位置];
2. Android生物识别认证教程
随着技术的发展,生物识别认证在Android设备上越来越常见。下面介绍如何在Android应用项目中实现基于指纹的生物识别认证。
2.1 生物识别认证概述
生物识别认证的关键组件是 BiometricPrompt 类。该类可以完成许多以前需要编写大量代码才能实现的工作,包括显示标准对话框引导用户完成认证过程、执行认证并将结果报告给应用。它还能处理过多的认证失败尝试,并在用户再次尝试之前强制执行超时。
BiometricPrompt 类包含一个配套的 Builder 类,用于配置和创建 BiometricPrompt 实例,包括定义生物识别认证对话框中显示的文本和自定义取消按钮。此外, BiometricPrompt 实例还会分配一组认证回调,用于向应用提供认证操作的结果。同时,使用 CancellationSignal 实例允许应用在认证过程中取消认证。
2.2 创建生物识别认证项目
创建生物识别认证项目的步骤如下:
1. 从欢迎屏幕中选择“New Project”选项。
2. 在新项目对话框中,选择“Empty Views Activity”模板,然后点击“Next”按钮。
3. 在“Name”字段中输入 BiometricDemo ,在“Package name”字段中输入 com.ebookfrenzy.biometricdemo 。
4. 在点击“Finish”按钮之前,将“Minimum API level”设置为API 29: Android (Q),将“Language”菜单设置为Java。
2.3 配置设备指纹认证
指纹认证仅在包含触摸传感器且已采取适当配置步骤以保护设备并注册至少一个指纹的设备上可用。在物理设备上配置指纹认证的步骤如下:
1. 打开“Settings”应用,选择“Security”选项。
2. 在安全设置屏幕中,选择“Fingerprint”选项。
3. 在出现的信息屏幕上点击“Next”按钮,进入指纹设置屏幕。
4. 在启用指纹安全之前,必须配置备份屏幕解锁方法(如PIN)。如果锁屏未受保护,请按照步骤配置PIN、图案或密码安全。
5. 锁屏受保护后,进入指纹检测屏幕,当提示时触摸传感器,如有需要可重复该过程以添加更多指纹。
2.4 添加生物识别权限到清单文件
生物识别认证需要应用在项目清单文件中请求 USE_BIOMETRIC 权限。在Android Studio项目工具窗口中,找到并编辑 app -> manifests -> AndroidManifest.xml 文件,添加以下权限请求:
<uses-permission
android:name="android.permission.USE_BIOMETRIC" />
2.5 设计用户界面
为了使示例尽可能简单,用户界面中唯一的可视元素将是一个按钮。具体操作如下:
1. 找到并选择 activity_main.xml 布局资源文件,将其加载到布局编辑器工具中。
2. 删除示例 TextView 对象,从调色板的“Common”类别中拖放一个 Button 对象,并将其放置在布局画布的中心。
3. 使用属性工具窗口,将按钮的文本属性更改为“Authenticate”,并将字符串提取到资源中。
4. 配置 onClick 属性以调用名为 authenticateUser 的方法。
2.6 添加Toast便捷方法
为了避免多次重复编写显示Toast消息的代码,在 MainActivity.java 文件中添加一个名为 notifyUser 的便捷方法:
private void notifyUser(String message) {
Toast.makeText(this,
message,
Toast.LENGTH_LONG).show();
}
2.7 检查安全设置
在尝试进行指纹认证之前,需要确保设备的锁屏已配置且应用具有生物识别权限。在 MainActivity.java 文件的 onCreate 方法中添加以下代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_biometric_demo);
checkBiometricSupport();
}
private void checkBiometricSupport() {
KeyguardManager keyguardManager =
(KeyguardManager) getSystemService(KEYGUARD_SERVICE);
if (!keyguardManager.isKeyguardSecure()) {
notifyUser("Lock screen security not enabled in Settings");
}
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.USE_BIOMETRIC) !=
PackageManager.PERMISSION_GRANTED) {
notifyUser("Fingerprint authentication permission not enabled");
}
}
上述代码使用 KeyguardManager 验证锁屏是否已配置备份解锁方法,使用 PackageManager 验证应用是否具有生物识别权限。
下面是配置生物识别认证的步骤表格:
|步骤|操作|
|----|----|
|创建项目|选择Empty Views Activity模板,设置项目名称、包名、最低API级别和语言|
|配置指纹认证|在设备设置中启用指纹认证并注册指纹|
|添加权限|在清单文件中添加USE_BIOMETRIC权限|
|设计界面|添加一个按钮并配置点击事件|
|添加便捷方法|在MainActivity中添加notifyUser方法|
|检查安全设置|在onCreate方法中调用checkBiometricSupport方法|
Android开发:App链接、生物识别认证与应用发布教程
2.8 配置认证回调
当配置生物识别提示对话框时,需要为其分配一组认证回调方法,用于通知应用认证过程的成功或失败。在 MainActivity.java 文件中添加以下方法:
private BiometricPrompt.AuthenticationCallback getAuthenticationCallback() {
return new BiometricPrompt.AuthenticationCallback() {
@Override
public void onAuthenticationError(int errorCode,
CharSequence errString) {
notifyUser("Authentication error: " + errString);
super.onAuthenticationError(errorCode, errString);
}
@Override
public void onAuthenticationHelp(int helpCode,
CharSequence helpString) {
super.onAuthenticationHelp(helpCode, helpString);
}
@Override
public void onAuthenticationFailed() {
super.onAuthenticationFailed();
}
@Override
public void onAuthenticationSucceeded(
BiometricPrompt.AuthenticationResult result) {
notifyUser("Authentication Succeeded");
super.onAuthenticationSucceeded(result);
}
};
}
上述代码创建并返回一个 BiometricPrompt.AuthenticationCallback 类的实例,实现了认证成功、失败、错误和帮助等回调方法。
2.9 添加取消信号
为了让应用能够在生物识别认证过程中取消操作,需要创建一个 CancellationSignal 实例并传递给认证过程。在 MainActivity.java 文件中添加以下方法:
private CancellationSignal cancellationSignal;
private CancellationSignal getCancellationSignal() {
cancellationSignal = new CancellationSignal();
cancellationSignal.setOnCancelListener(() ->
notifyUser("Cancelled via signal"));
return cancellationSignal;
}
上述代码创建了一个 CancellationSignal 实例,并为其设置了取消监听器,当取消操作完成时会显示相应的消息。
2.10 启动生物识别提示
最后,在 authenticateUser 方法中添加代码来创建和配置 BiometricPrompt 实例并启动认证:
public void authenticateUser(View view) {
BiometricPrompt biometricPrompt = new BiometricPrompt.Builder(this)
.setTitle("Biometric Demo")
.setSubtitle("Authentication is required to continue")
.setDescription(
"This app uses biometric authentication to protect your data.")
.setNegativeButton("Cancel", this.getMainExecutor(),
(dialogInterface, i) ->
notifyUser("Authentication cancelled"))
.build();
biometricPrompt.authenticate(getCancellationSignal(), getMainExecutor(),
getAuthenticationCallback());
}
上述代码使用 BiometricPrompt.Builder 创建一个 BiometricPrompt 实例,配置了提示对话框的标题、副标题、描述和取消按钮,然后调用 authenticate 方法启动认证。
下面是生物识别认证流程的流程图:
graph TD;
A[点击认证按钮] --> B[创建BiometricPrompt实例];
B --> C[配置标题、副标题、描述和取消按钮];
C --> D[调用authenticate方法启动认证];
D --> E{认证是否成功};
E -- 是 --> F[显示认证成功消息];
E -- 否 --> G{是否取消认证};
G -- 是 --> H[显示取消认证消息];
G -- 否 --> I[显示认证失败或错误消息];
2.11 测试项目
完成项目后,在物理Android设备或模拟器会话上运行应用,点击“Authenticate”按钮显示生物识别提示对话框。可以通过触摸指纹传感器或使用模拟器的扩展控制面板模拟指纹触摸来进行测试。测试内容包括:
- 使用注册的指纹进行认证,验证认证成功后是否显示相应的消息。
- 使用未注册的指纹进行认证,验证是否显示指纹未识别的消息。
- 点击生物识别提示对话框外的活动区域,验证错误处理回调是否正常工作。
- 点击取消按钮,验证是否显示“Authentication Canceled”消息。
- 多次使用未注册的指纹进行认证,验证是否在多次失败后提示不能再进行尝试。
3. 创建、测试和上传Android应用包
当Android应用的开发工作完成并在各种Android设备上进行测试后,需要将应用打包发布到Google Play。下面介绍相关的步骤。
3.1 发布准备过程
将应用发布到Google Play需要完成以下步骤:
1. 以发布模式编译应用,而不是调试模式。
2. 使用私钥对应用进行签名,以唯一标识开发者身份。
3. 将应用打包成Android应用包(App Bundle)。
虽然这些任务可以在Android Studio环境之外完成,但使用Android Studio的构建机制可以更轻松地完成这些操作。
3.2 Android应用包概述
在引入Android Studio 3.2之前,开发者需要生成一个或多个APK文件并上传到Google Play,以支持不同的设备类型、屏幕尺寸和语言环境。这需要为每个目标设备和语言环境创建和上传多个定制的APK文件,或者生成一个包含所有不同配置资源和平台二进制文件的大型通用APK。
而Android应用包(App Bundle)是一个ZIP文件,包含了为应用项目中支持的设备和语言环境构建APK文件所需的所有文件。当用户安装应用时,Google Play会根据设备信息(如显示屏、处理器架构和语言环境)自动生成并传输适当的APK文件到用户设备。
使用Android应用包的好处包括:
- 减少开发者的工作量,只需创建一个包,Google Play会自动为每个支持的配置生成定制的APK文件。
- 提高应用的转化率,因为较小的APK文件下载时间更短,占用的存储空间更少。
- 支持动态交付,允许将应用拆分为多个模块,每个模块包含特定功能区域的代码和资源,只有在用户需要时才下载。
3.3 注册Google Play开发者控制台账户
首先,需要创建一个Google Play开发者控制台账户。访问 注册页面 ,按照说明完成注册过程,注册需要支付一次性25美元的费用。注册成功后,可以通过 Google Play控制台 访问开发者控制台。
在提交应用之前,需要收集以下信息:
|信息类型|说明|
|----|----|
|标题|应用的标题|
|简短描述|最多80个单词描述应用|
|完整描述|最多4000个单词描述应用|
|截图|最多8张应用运行的截图,至少需要2张,建议提交在7英寸或10英寸平板电脑上运行的截图|
|语言|应用的语言,默认为美国英语|
|宣传文本|应用在Google Play环境的特殊促销功能中显示的文本|
|应用类型|应用是游戏还是普通应用|
|类别|最能描述应用的类别,如金融、健康与健身、教育、体育等|
|地理位置|希望应用在哪些地理区域可供购买|
|联系信息|用户可以通过哪些方式联系开发者获取应用支持,包括网站、电子邮件和电话|
|定价与分发|应用的价格和销售的地理区域信息|
收集完上述信息后,在Google Play控制台中点击“Create app”按钮开始提交应用。
总之,本文详细介绍了Android开发中App链接、生物识别认证和应用发布的相关知识和操作步骤,通过这些步骤可以实现功能丰富且安全的Android应用,并将其成功发布到Google Play。
超级会员免费看
742

被折叠的 条评论
为什么被折叠?



