如何检查安卓设备是否支持触觉反馈?

3

在某些设备上,.performHapticFeedback 会默默失败,无法知道触觉反馈是否成功,在这种设备上,触觉反馈设置为 true。

有没有办法知道设备是否支持触觉反馈,或者触觉反馈是否执行?

(该设备是我用于测试的安卓2.3 Galaxy W,我认为它不支持触觉反馈,因为没有触觉反馈设置)

2个回答

1
Vibrator mVibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);

您可以使用以下API。添加于API级别11。不需要权限。
boolean isVibrator = mVibrator.hasVibrator();

它检查硬件是否有振动器。

如果您想根据支持情况使设备振动,需要添加权限。android.permission.VIBRATE 然后调用 mVibrator.vibrate(long millisenonds)


谢谢你的回答,我对Android动态了解不多,但振动和触觉反馈似乎是不同的东西。这个设备可以振动,但似乎没有原生的触觉反馈功能(我的意思是从理论上讲它可以提供触觉反馈,但.performHapticFeedback方法却没有任何效果)。 - Kaan Soral
@KaanSoral 如果触觉反馈未启用,performHapticFeedback() API 将无法工作。您可以查看 http://developer.android.com/reference/android/view/View.html#performHapticFeedback(int)要检查用户的触觉设置,请使用以下代码: Settings.System.getInt(Context.getContentResolver(), Settings.System.HAPTIC_FEEDBACK_ENABLED, 0); - Anupam
1
就像我在问题中提到的那样,触觉反馈设置似乎已启用 - 据我了解,这只是一个默认启用的设置,启用并不意味着该功能/集成存在。 - Kaan Soral

-1

我的猜测是这样的:

在你的活动/服务代码中,尝试像这样检查振动器服务是否可用:

  // Get instance of Vibrator from current Context
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
if(v == null){
//no haptic feedback is possible
}
else{
//haptic feedback is a possible feature
}

谢谢答案,我也回复了@Anupam的答案,我认为触觉反馈和振动是不同的东西,触觉反馈似乎是振动马达的一个特定和本地的用法。 - Kaan Soral
一个设备可以拥有“振动器”,但不支持触觉反馈。 - MrPickles
嗯,我不确定,但你能推荐一下应该怎么做吗?我在想这是最接近的方法。 - j2emanue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接