#跟着坚果学鸿蒙#场景介绍 当设备需要设置不同的振动效果时,可以调用 Vibrator 模块,例如,设备的按键 可以设置不同强度和时长的振动,闹钟和来电可以设置不同强度和时长的单次或 周期性振动。

接口说明 振动器模块主要提供的功能有:查询设备上振动器的列表,查询某个振动器是否 支持某种振动效果,触发和关闭振动器。VibratorAgent 类开放能力如下,具体请 查阅 API 参考文档。

开发步骤 1. 控制设备上的振动器,需要在“config.json”里面进行配置请求权限。具体如下:

"reqPermissions": [ 
 { 
 "name": "ohos.permission.VIBRATE", 
 "reason": "", 
 "usedScene": { 
 "ability": [ 
 ".MainAbility" 
 ], 
 "when": "inuse" 
 } } 
] 

1. 查询硬件设备上的振动器列表。 2. 查询指定的振动器是否支持指定的震动效果。 3. 创建不同效果的振动。 4. 关闭指定的振动器指定模式的振动。

private VibratorAgent vibratorAgent = new VibratorAgent(); 
 
private int[] timing = {1000, 1000, 2000, 5000}; 
 
private int[] intensity = {50, 100, 200, 255}; 
 
@Override 
public void onStart(Intent intent) { 
 super.onStart(intent); 
 super.setUIContent(ResourceTable.Layout_vibrator_layout); 
 
 // ... // 查询硬件设备上的振动器列表 
 List<Integer> vibratorList = vibratorAgent.getVibratorIdList(); 
 if (vibratorList.isEmpty()) { 
 return; 
 } 
 int vibratorId = vibratorList.get(0); 
 
 // 查询指定的振动器是否支持指定的振动效果 
 boolean isSupport = vibratorAgent.isEffectSupport(vibratorId, VibrationPattern.VIBRATOR_TPYE_CAMERA_CLICK); 
 
 // 创建指定效果的一次性振动 
 boolean vibrateEffectResult = vibratorAgent.vibrate(vibratorId, 
 VibrationPattern.VIBRATOR_TPYE_CAMERA_CLICK); 
 
 // 创建指定振动时长的一次性振动 
 int vibratorTiming = 1000; 
 boolean vibrateResult = vibratorAgent.vibrate(vibratorId, 
vibratorTiming); // 创建自定义效果的周期性波形振动 
 int count = 5; 
 VibrationPattern vibrationPeriodEffect = 
VibrationPattern.createPeriod(timing, intensity, count); 
 boolean vibratePeriodResult = vibratorAgent.vibrate(vibratorId, 
vibrationPeriodEffect); 
 
 // 创建自定义效果的一次性振动 
 VibrationPattern vibrationOnceEffect = 
VibrationPattern.createSingle(3000, 50); 
 boolean vibrateSingleResult = vibratorAgent.vibrate(vibratorId, 
vibrationOnceEffect); // 关闭指定的振动器自定义模式的振动 
 boolean stopResult = vibratorAgent.stop(vibratorId, 
 VibratorAgent.VIBRATOR_STOP_MODE_CUSTOMIZED); 
} 

位置 概述 移动终端设备已经深入人们日常生活的方方面面,如查看所在城市的天气、新闻 轶事、出行打车、旅行导航、运动记录。这些习以为常的活动,都离不开定位用 户终端设备的位置。 当用户处于这些丰富的使用场景中时,系统的位置能力可以提供实时准确的位置 数据。对于开发者,设计基于位置体验的服务,也可以使应用的使用体验更贴近 每个用户。 当应用在实现基于设备位置的功能时,如:驾车导航,记录运动轨迹等,可以调 用该模块的 API 接口,完成位置信息的获取。

基本概念 位置能力用于确定用户设备在哪里,系统使用位置坐标标示设备的位置,并用多 种定位技术提供服务,如 GNSS 定位、基站定位、WLAN/蓝牙定位(基站定位、 WLAN/蓝牙定位后续统称“网络定位技术”)。通过这些定位技术,无论用户设备 在室内或是户外,都可以准确地确定设备位置。 ⚫ 坐标 系统以 1984 年世界大地坐标系统为参考,使用经度、纬度数据描述地球上的一 个位置。

⚫ GNSS 定位 基于全球导航卫星系统,包含:GPS、GLONASS、北斗、Galileo 等,通过导航卫 星,设备芯片提供的定位算法,来确定设备准确位置。定位过程具体使用哪些定 位系统,取决于用户设备的硬件能力。 ⚫ 基站定位 根据设备当前驻网基站和相邻基站的位置,估算设备当前位置。此定位方式的定 位结果精度相对较低,并且需要设备可以访问蜂窝网络。

⚫ WLAN、蓝牙定位 根据设备可搜索到的周围 WLAN、蓝牙设备位置,估算设备当前位置。此定位方 式的定位结果精度依赖设备周围可见的固定 WLAN、蓝牙设备的分布,密度较高 时,精度也相较与基站定位方式更高,同时也需要设备可以访问网络。

运作机制 位置能力作为系统为应用提供的一种基础服务,需要应用在所使用的业务场景, 向系统主动发起请求,并在业务场景结束时,主动结束此请求,在此过程中系统 会将实时的定位结果上报给应用。

约束与限制 使用设备的位置能力,需要用户进行确认并主动开启位置开关。如果位置开关没 有开启,系统不会向任何应用提供位置服务。 设备位置信息属于用户敏感数据,所以即使用户已经开启位置开关,应用在获取 设备位置前仍需向用户申请位置访问权限。在用户确认允许后,系统才会向应用 提供位置服务。

 

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐