HarmonyOS 鸿蒙Next在获取经纬度、设备信息、IP地址、mac地址、IMEI及手机号等信息时遇到的一些问题
HarmonyOS 鸿蒙Next在获取经纬度、设备信息、IP地址、mac地址、IMEI及手机号等信息时遇到的一些问题
1.HarmonyOS 鸿蒙Next如何获取经纬度
在Android开发中可以通过以下方式获取经纬度,但在老师提供的材料中,只能获取位置服务策略值LocationPolicy,请问获取经纬度如何获取?
java
double latitude = location.getLatitude();
double longitude = location.getLongitude();
2.HarmonyOS 鸿蒙Next如何获取操作系统版本号、设备类型
在Android开发中可以通过以下方式获取系统版本号、设备类型,但未在官方文档中查到获取鸿蒙系统版本号、设备类型的API,烦请提供。
java
// 系统版本号
String version = String.valueOf(Build.VERSION.RELEASE);
// 设备类型
String deviceType = Build.TYPE;
3.HarmonyOS 鸿蒙Next安装HAP时提示权限错误
在代码中获取设备名称、IP地址Mac地址时用到的函数需要以下权限
"requestPermissions": [
{
"name": "ohos.permission.ENTERPRISE_MANAGE_NETWORK"
},
{
"name": " ohos.permission.ENTERPRISE_GET_DEVICE_INFO"
}
]
然后在安装HAP时提示“code:9568289 error: install failed due to grant request permissions failed”
在开发工具中提示如下:
问题现象
在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install failed due to grant request permissions failed”错误信息。
![点击放大](D:/Program Files/DevEcoStudio/DevEco Studio/plugins/openharmony/ohos-info-center-view/static/hos/faq/figure/zh-cn_image_0000001622288974.png)
解决措施
该问题是由于默认应用等级为normal,只能使用normal等级的权限,如果使用了system_basic或system_core等级的权限,将导致报错。
对于HarmonyOS应用,请参考使用ACL签名配置指导完成ACL提权。
请问这个问题如何解决?
4.是否有API能在本地同步获取手机号
当前提供的API是通过一键登录才能获取手机号,是否有API不通过一键登录获取?
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
phonenumber = tm.getLine1Number();
更多关于HarmonyOS 鸿蒙Next在获取经纬度、设备信息、IP地址、mac地址、IMEI及手机号等信息时遇到的一些问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
官方文档如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-geolocationmanager-V5#geolocationmanagergetcurrentlocation
2、获取设备信息相关,可参考以下官方文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-device-info-V5#%E5%B1%9E%E6%80%A7
3、这两个权限只对MDM应用开放。需要您检测一下申请的权限等级是否高于应用等级。
查看权限等级链接如下:https://gitee.com/openharmony/security_access_token/blob/master/services/accesstokenmanager/permission_definitions.json
参考官方链接如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/permissions-for-mdm-apps-V5#ohospermissionenterprise_get_device_info
4、当前获取手机号需要申请scope权限,进行登录授权才可以,没有其他的api可以获取。
更多关于HarmonyOS 鸿蒙Next在获取经纬度、设备信息、IP地址、mac地址、IMEI及手机号等信息时遇到的一些问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我是外行人,鸿蒙系统不是以安全为主吗?为什么这么敏感的东西能让第三方软件获取(经纬度,mac,imei等)。
1、获取经纬度可以使用geoLocationManager.getCurrentLocation,可通过返回结果中的位置信息Location获取latitude纬度信息以及longitude经度信息
2、获取设备信息可通过deviceInfo获取:
其中系统版本号可通过deviceInfo.distributionOSVersion获取;
设备类型可通过deviceInfo.deviceType获取;
3、这两个权限只对MDM应用开放。需要您检测一下申请的权限等级是否高于应用等级。
仅对MDM应用开放的文档链接如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/permissions-for-mdm-apps-V5#ohospermissionenterprise_get_device_info
MDM场景下的应用权限,非MDM应用无法进行申请使用。
4、当前获取手机号需要申请scope权限,进行登录授权才可以,没有其他的api可以获取。
目前没有不通过一键登录获取手机号的api
在HarmonyOS 鸿蒙Next系统中,获取各类设备与网络信息的具体方法有所不同,以下是针对您提到的信息获取问题的简要解答:
-
经纬度:通过调用位置服务API,确保应用已获取位置权限,利用Location对象获取经纬度。
-
设备信息:使用系统提供的DeviceInfo API,可以获取设备型号、系统版本等基本信息。
-
IP地址:通过NetworkInterface API遍历网络接口,获取每个接口的IP地址信息。
-
MAC地址:HarmonyOS中直接获取MAC地址受限,需通过特定权限和网络接口管理API间接获取。
-
IMEI:使用TelephonyManager API获取,确保应用具有读取电话状态权限。
-
手机号:出于隐私保护,HarmonyOS限制直接获取手机号,需用户授权并通过TelephonyManager API获取。
请注意,获取敏感信息(如IMEI、手机号)时,应用需遵循用户隐私政策,确保用户授权。此外,不同版本的HarmonyOS可能在API实现上存在差异,需参考具体版本的官方文档。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html