#跟着坚果学鸿蒙#Vibrator 开发指导
#跟着坚果学鸿蒙#场景介绍 当设备需要设置不同的振动效果时,可以调用 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、蓝牙设备的分布,密度较高 时,精度也相较与基站定位方式更高,同时也需要设备可以访问网络。
运作机制 位置能力作为系统为应用提供的一种基础服务,需要应用在所使用的业务场景, 向系统主动发起请求,并在业务场景结束时,主动结束此请求,在此过程中系统 会将实时的定位结果上报给应用。
约束与限制 使用设备的位置能力,需要用户进行确认并主动开启位置开关。如果位置开关没 有开启,系统不会向任何应用提供位置服务。 设备位置信息属于用户敏感数据,所以即使用户已经开启位置开关,应用在获取 设备位置前仍需向用户申请位置访问权限。在用户确认允许后,系统才会向应用 提供位置服务。
更多推荐
所有评论(0)