【发布时间】:2011-10-11 17:00:35
【问题描述】:
我有一个设备,我不知道它是否有振动器。
有没有办法查询振动器的可用性?
【问题讨论】:
-
这听起来很愚蠢,但如果它是您想知道的特定设备,您就不能在线查看规格吗?
-
该问题旨在记录一个鲜为人知的课程。 ;)
-
@Octavian:您可能对this 感兴趣。结果是this list of questions。
我有一个设备,我不知道它是否有振动器。
有没有办法查询振动器的可用性?
【问题讨论】:
Vibrator 类就是这样做的。 hasVibrator() 方法返回一个布尔值,指示是否支持振动。
hasVibrator() 方法查询振动器类。String vs = Context.VIBRATOR_SERVICE;
Vibrator mVibrator = (Vibrator)getSystemService(vs);
boolean isVibrator = mVibrator.hasVibrator();
【讨论】:
getSystemService返回的Vibrator是否为空?
这可能对 API 有所帮助
Context.getSystemService() 返回一个服务对象,如果没有服务则返回null。
if ( getSystemService(VIBRATOR_SERVICE) != null ) {
//Vibrator exists
}
【讨论】:
您需要(至少)支持 Android 3.0 (11 HoneyComb) 才能使用 hasVibrator()。
奇怪的是,您可以在任何/所有版本上使用 vibrate() 本身。
所以真正的问题是:v1 - v10 如何检测设备是否有振动器? (或者,如果您尝试在没有振动器的情况下振动设备,不会发生任何不好的事情吗?)
【讨论】:
也许它会帮助某人。 由于我正在构建 PWA,因此我最终检查了屏幕尺寸:
if (window.innerWidth < 600) {
window.navigator.vibrate(300);
}
【讨论】: