安卓手机APP开发_____通过设备管理政策增强安全性

2024-06-05 21:20

本文主要是介绍安卓手机APP开发_____通过设备管理政策增强安全性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

安卓手机APP开发_____通过设备管理政策增强安全性

目录

概述

定义并声明政策

创建设备管理接收器

激活设备管理器

实现设备政策控制器


概述

设备管理弃用。部分管理员政策在由设备管理员调用时被标记为已弃用。
如需了解详情并查看迁移选项,请参阅 设备管理弃用。

从 Android 2.2(API 级别 8)开始,Android 平台通过设备管理 API
提供系统级设备管理功能。

在本课中,您将学习如何创建一个安全感知型应用,通过强制执行设备
管理政策来管理对其内容的访问权限。具体来说,可以对应用进行配置,
以确保在向用户显示受限内容之前设置足够强度的屏幕锁定密码。

定义并声明政策

首先,您需要定义要在职能层面支持的政策类型。政策可能涵盖屏幕锁定
密码强度、失效超时和加密等。

您必须在 res/xml/device_admin.xml 文件中声明所选政策集,该政策集
将由应用强制执行。Android 清单还应引用声明的政策集。

每项声明的政策都对应于 DevicePolicyManager 中一定数量的相关设备
政策方法(定义密码最小长度和最小大写字符数量是两个示例)。如果
应用尝试调用的方法未在 XML 中声明相应政策,则会导致在运行时出现
SecurityException。如果应用打算管理其他类型的政策,则还可以使用
force-lock 等其他权限。稍后您将看到,在设备管理员激活过程中,系
统会在系统屏幕上向用户显示已声明的政策列表。

以下代码段在 res/xml/device_admin.xml 中声明了限制密码政策:

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-policies>
        <limit-password />
    </uses-policies>
</device-admin>

Android 清单中引用的政策声明 XML:

<receiver android:name=".Policy$PolicyAdmin"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <meta-data android:name="android.app.device_admin"
        android:resource="@xml/device_admin" />
    <intent-filter>
        <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
    </intent-filter>
</receiver>

创建设备管理接收器

创建设备管理功能广播接收器,用于接收与您声明支持的政策相关的事件的通知。
应用可以选择性地替换回调方法。

在示例应用 Device Admin 中,当用户停用设备管理员时,已配置的政策会从共
享偏好设置中清除。您应考虑实现与您的用例相关的业务逻辑。例如,应用可能会
采取一些操作来降低安全风险,方法是实现删除设备上的敏感数据、停用远程同步、
提醒管理员等某种组合。

为了让广播接收器正常工作,请确保在 Android 清单中注册它,如上面的代码段所示。
Kotlin
 

class PolicyAdmin : DeviceAdminReceiver() {override fun onDisabled(context: Context, intent: Intent) {// Called when the app is about to be deactivated as a device administrator.// Deletes previously stored password policy.super.onDisabled(context, intent)context.getSharedPreferences(APP_PREF, Activity.MODE_PRIVATE).edit().apply {clear()apply()}}
}

激活设备管理器

在强制执行任何政策之前,用户都需要以设备管理员的身份手动激活应用。以下代
码段说明了如何触发设置 activity,供用户激活您的应用。一种很好的做法是在
intent 中指定 EXTRA_ADD_EXPLANATION extra,从而添加说明文本来向用户强调
应用为何请求成为设备管理员。


Kotlin

if (!policy.isAdminActive()) {val activateDeviceAdminIntent = Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN)activateDeviceAdminIntent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,policy.getPolicyAdmin())// It is good practice to include the optional explanation text to// explain to user why the application is requesting to be a device// administrator. The system will display this message on the activation// screen.activateDeviceAdminIntent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,resources.getString(R.string.device_admin_activation_message))startActivityForResult(activateDeviceAdminIntent, REQ_ACTIVATE_DEVICE_ADMIN)
}

如果用户选择“启用”,应用会成为设备管理员,并且可以开始配置和强制执行该政策。

应用还需要做好准备,以应对用户通过点击“Cancel”按钮、“返回”键或“主屏幕”键放弃
激活流程的预设情况。因此,政策设置 activity 中的 onResume() 需要具有用于重新
评估条件的逻辑,并在需要时向用户显示设备管理员激活选项。

实现设备政策控制器

成功激活设备管理器后,应用会使用请求的政策配置设备政策管理器。请注意,
Android 会随每个版本添加新的政策。如果在支持旧版平台的情况下使用新政策,
则最好在应用中执行版本检查。例如,“密码最小大小写”政策仅适用于 API 级别
11 (Honeycomb) 及更高级别。以下代码演示了如何在运行时检查版本。

Kotlin

private lateinit var dpm: DevicePolicyManager
private lateinit var policyAdmin: ComponentNamedpm = context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager
policyAdmin = ComponentName(context, PolicyAdmin::class.java)dpm.apply {setPasswordQuality(policyAdmin, PASSWORD_QUALITY_VALUES[passwordQuality])setPasswordMinimumLength(policyAdmin, passwordLength)if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {setPasswordMinimumUpperCase(policyAdmin, passwordMinUpperCase)}
}

此时,应用能够强制执行该政策。虽然应用无法访问实际所用的屏幕锁定密码,但可
以通过 Device Policy Manager API 确定现有密码是否符合要求的政策。如果发现
现有的屏幕锁定密码不够用,则设备管理 API 不会自动采取纠正措施。该应用负责
在“设置”应用中明确启动系统密码更改屏幕。例如:

Kotlin


if (!dpm.isActivePasswordSufficient) {// Triggers password change screen in Settings.Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD).also { intent ->startActivity(intent)}
}

通常,用户可以从可用的锁定机制中选择一种,例如“无”“图案”“PIN 码(数字)”
或“密码”(字母数字)。配置密码政策时,会停用弱于政策中所定义密码类型的
密码类型。例如,如果配置了“数字”密码质量,则用户可以仅选择 PIN 码(数字)
或密码(字母数字)密码。

通过设置适当的屏幕锁定密码来妥善保护设备后,应用将允许访问受保护的内容。
Kotlin

when {!dpm.isAdminActive(policyAdmin) -> {// Activates device administrator....}!dpm.isActivePasswordSufficient -> {// Launches password set-up screen in Settings....}else -> {// Grants access to secure content....startActivity(Intent(context, SecureActivity::class.java))}
}

这篇关于安卓手机APP开发_____通过设备管理政策增强安全性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1034207

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta