【HarmonyOS NEXT】三方应用是否有权限获取UDID

【关键字】

UDID / 采集

【问题描述】

想为app开发一个设备指纹的模块,需要采集UDID、OAID这些信息。在开发过程中获取UDID没法获取,提示需要ACL权限,但在HAP的ACL权限列表没有这项,是不是只能是鸿蒙的系统应用才能获取?

【解决方案】

是的。当前三方应用获取UDID仅可以通过命令获取,不支持通过代码获取,无其它可用方式。

bm工具的命令获取方式可以参考以下文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/bm-tool-0000001820880477#ZH-CN_TOPIC_0000001811317554__%E8%8E%B7%E5%8F%96udid

hdc工具的命令获取方式可以参考以下文档:

https://developer.huawei.com/consumer/cn/doc/app/agc-help-harmonyos-debugapp-manual-0000001177608893#section1835412326017

当前鸿蒙三方应用不能获取UDID,使用类似iOS的keyChains的Asset Store Kit能力实现,参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/asset-store-kit-overview-0000001816916898

https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-asset-0000001863796493

注意:在新增关键资产时,需要将IS_PERSISTENT设为true,在应用卸载时即会保留关键资产,需要权限: ohos.permission.STORE_PERSISTENT_DATA

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在安卓开发中,可以通过Android系统提供的Fingerprint API和Face ID API来实现指纹支付和刷脸支付的功能。以下是实现指纹支付和刷脸支付的简要步骤: 1. 检查设备是否支持指纹支付或刷脸支付 ```java if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { FingerprintManager fingerprintManager = (FingerprintManager) getSystemService(Context.FINGERPRINT_SERVICE); if (!fingerprintManager.isHardwareDetected() || !fingerprintManager.hasEnrolledFingerprints()) { // 设备不支持指纹支付 return; } } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); if (!keyguardManager.isKeyguardSecure() || !keyguardManager.isDeviceSecure()) { // 设备不支持刷脸支付 return; } } ``` 2. 请求指纹或刷脸验证 ```java if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { FingerprintManager fingerprintManager = (FingerprintManager) getSystemService(Context.FINGERPRINT_SERVICE); if (fingerprintManager.isHardwareDetected() && fingerprintManager.hasEnrolledFingerprints()) { // 请求指纹验证 FingerprintManager.AuthenticationCallback authenticationCallback = new FingerprintManager.AuthenticationCallback() { @Override public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) { // 指纹验证成功 } @Override public void onAuthenticationError(int errorCode, CharSequence errString) { // 指纹验证错误 } @Override public void onAuthenticationFailed() { // 指纹验证失败 } }; CancellationSignal cancellationSignal = new CancellationSignal(); fingerprintManager.authenticate(null, cancellationSignal, 0, authenticationCallback, null); } } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); if (keyguardManager.isKeyguardSecure() && keyguardManager.isDeviceSecure()) { // 请求刷脸验证 BiometricPrompt biometricPrompt = new BiometricPrompt.Builder(this) .setTitle("Title") .setDescription("Description") .setNegativeButton("Cancel", this.getMainExecutor(), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { // 取消刷脸验证 } }) .build(); BiometricPrompt.AuthenticationCallback authenticationCallback = new BiometricPrompt.AuthenticationCallback() { @Override public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) { // 刷脸验证成功 } @Override public void onAuthenticationError(int errorCode, CharSequence errString) { // 刷脸验证错误 } @Override public void onAuthenticationFailed() { // 刷脸验证失败 } }; biometricPrompt.authenticate(new CancellationSignal(), this.getMainExecutor(), authenticationCallback); } } ``` 需要注意的是,上述代码中的指纹验证和刷脸验证是互斥的,只能选择其中一个进行验证。同时,需要在AndroidManifest.xml文件中声明相应的权限和特性: ```xml <uses-permission android:name="android.permission.USE_BIOMETRIC" /> <uses-permission android:name="android.permission.USE_FINGERPRINT" /> <uses-feature android:name="android.hardware.fingerprint" android:required="false" /> <uses-feature android:name="android.hardware.camera" android:required="false" /> <uses-feature android:name="android.hardware.camera.front" android:required="false" /> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" /> ``` 以上代码仅为实现指纹支付和刷脸支付的基本示例,具体实现方式可能会因设备、系统等因素而有所不同。另外,实现指纹支付和刷脸支付需要考虑安全性等方面的问题,开发过程中需要注意遵守相关规范和标准。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值