HarmonyOS鸿蒙Next中V2.0.1与V2.0.0版本的相机相关的API发生了哪些变化?
HarmonyOS鸿蒙Next中V2.0.1与V2.0.0版本的相机相关的API发生了哪些变化?
请问,V2.0.1与V2.0.0版本的相机相关的API发生了哪些变化?
开发的鸿蒙应用在V2.0.0版本可以禁用相机,V2.0.1升级后无法禁用相机。
Nova9 Pro
补充一下相关代码:
package com.trustmobi.devicem;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
/**
* Created by dds on 2019/6/27.
* android_shuai@163.com
*/
public class DeviceManger {
private DevicePolicyManager devicePolicyManager;
private Context mContext;
private ComponentName componentName;
public DeviceManger(Context context) {
mContext = context;
//获取设备管理服务
devicePolicyManager = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
//DeviceReceiver 继承自 DeviceAdminReceiver
componentName = new ComponentName(context, DeviceReceiver.class);
}
// 测试
public void test(Context context) {
DevicePolicyManager dm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
}
// 激活设备管理器
public void enableDeviceManager() {
//判断是否激活 如果没有就启动激活设备
if (!devicePolicyManager.isAdminActive(componentName)) {
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
mContext.getString(R.string.dm_extra_add_explanation));
mContext.startActivity(intent);
} else {
Toast.makeText(mContext, "设备已经激活,请勿重复激活", Toast.LENGTH_SHORT).show();
}
}
// 取消激活设备管理器
public void disableDeviceManager() {
devicePolicyManager.removeActiveAdmin(componentName);
}
// 设置解锁方式 不需要激活就可以运行
public void setNewPwd() {
Intent intent = new Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD);
mContext.startActivity(intent);
}
// 设置解锁方式 需要激活设备管理器(配置策略)
public void setLockMethod() {
// PASSWORD_QUALITY_ALPHABETIC
// 用户输入的密码必须要有字母(或者其他字符)。
// PASSWORD_QUALITY_ALPHANUMERIC
// 用户输入的密码必须要有字母和数字。
// PASSWORD_QUALITY_NUMERIC
// 用户输入的密码必须要有数字
// PASSWORD_QUALITY_SOMETHING
// 由设计人员决定的。
// PASSWORD_QUALITY_UNSPECIFIED
// 对密码没有要求。
if (devicePolicyManager.isAdminActive(componentName)) {
Intent intent = new Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD);
devicePolicyManager.setPasswordQuality(componentName,
DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
mContext.startActivity(intent);
} else {
Toast.makeText(mContext, "请先激活设备", Toast.LENGTH_SHORT).show();
}
}
//立刻锁屏
public void lockNow() {
if (devicePolicyManager.isAdminActive(componentName)) {
devicePolicyManager.lockNow();
} else {
Toast.makeText(mContext, "请先激活设备", Toast.LENGTH_SHORT).show();
}
}
// 设置多长时间后锁屏
public void lockByTime(long time) {
if (devicePolicyManager.isAdminActive(componentName)) {
devicePolicyManager.setMaximumTimeToLock(componentName, time);
} else {
Toast.makeText(mContext, "请先激活设备", Toast.LENGTH_SHORT).show();
}
}
// 恢复出厂设置
public void wipeData() {
if (devicePolicyManager.isAdminActive(componentName)) {
devicePolicyManager.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE);
} else {
Toast.makeText(mContext, "请先激活设备", Toast.LENGTH_SHORT).show();
}
}
// 设置密码锁
public void resetPassword(String password) {
if (devicePolicyManager.isAdminActive(componentName)) {
devicePolicyManager.resetPassword(password,
DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY);
} else {
Toast.makeText(mContext, "请先激活设备", Toast.LENGTH_SHORT).show();
}
}
// 禁用相机
public void disableCamera(boolean disabled) {
if (devicePolicyManager.isAdminActive(componentName)) {
devicePolicyManager.setCameraDisabled(componentName, disabled);
} else {
Toast.makeText(mContext, "请先激活设备",
Toast.LENGTH_SHORT).show();
}
}
}
更多关于HarmonyOS鸿蒙Next中V2.0.1与V2.0.0版本的相机相关的API发生了哪些变化?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
您好,请问问题解决了吗?
更多关于HarmonyOS鸿蒙Next中V2.0.1与V2.0.0版本的相机相关的API发生了哪些变化?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
开发者您好,普通的DeviceAdmin模式激活的设备管理器,在2.0.1及以后的版本这种模式不支持setCameraDisabled。
楼主您好,这个问题已经反馈给研发,请您耐心等待一下
欢迎开发小伙伴们进来帮帮楼主
在HarmonyOS鸿蒙Next中,V2.0.1与V2.0.0版本的相机相关API主要变化如下:
新增API:
CameraDevice.getSupportedPreviewSizes()
:新增方法,用于获取设备支持的预览尺寸列表。CameraDevice.getSupportedPictureSizes()
:新增方法,用于获取设备支持的图片尺寸列表。
废弃API:
CameraDevice.getPreviewSize()
:在V2.0.1中废弃,建议使用getSupportedPreviewSizes()
替代。CameraDevice.getPictureSize()
:在V2.0.1中废弃,建议使用getSupportedPictureSizes()
替代。
API行为变更:
CameraDevice.setPreviewCallback()
:在V2.0.1中,回调函数的调用频率由固定帧率改为动态调整,以优化性能。CameraDevice.startPreview()
:在V2.0.1中,启动预览时默认启用自动对焦功能,V2.0.0中需手动启用。
错误修复:
- 修复了
CameraDevice.stopPreview()
在某些设备上无法立即停止预览的问题。 - 修复了
CameraDevice.takePicture()
在高分辨率模式下可能导致的崩溃问题。
这些变化旨在提升相机API的灵活性和稳定性,开发者需根据新版本调整代码实现。
在HarmonyOS鸿蒙Next中,V2.0.1相较于V2.0.0版本的相机API主要做了以下优化和调整:
- 新增了对HDR模式的支持,开发者可以通过新加入的接口直接调用HDR功能,提升拍照画质。
- 改进了低光环境下的自动对焦算法,使得在暗光条件下拍照更加清晰。
- 优化了相机启动速度和连拍性能,减少了等待时间,提高了用户体验。
- 修复了部分已知的相机崩溃问题,增强了系统的稳定性。
这些更新旨在提升相机模块的性能和用户体验,开发者应检查现有应用与新API的兼容性,并考虑使用新功能来优化应用。