Android:振动器方法(如果手机没有振动器?)

时间:2012-01-14 16:01:43

标签: android methods vibrate

我想在我的应用程序中使用振动器方法,我已经让它在我的手机上工作,它有一个伟大的振动器。但是没有振动器的手机会发生什么。它根本不起作用吗?它会阻止应用程序运行吗?还是根本没有出现在市场上?或者我是否必须询问手机是否有振动器?

我还想知道这段代码是好还是需要调整?这是我的代码..

Vibrator vi;

vi = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

vi.vibrate(100);

<uses-permission android:name="android.permission.VIBRATE" /> (In manifest)

谢谢,任何帮助都会很棒。

2 个答案:

答案 0 :(得分:14)

检查文档http://developer.android.com/reference/android/os/Vibrator.html

您需要做的就是检查手机上是否有振动器,如下所示:

 Vibrator vi;

 vi = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

 if(vi.hasVibrator()){
     vi.vibrate(100);
 }

由于振动权限,Android市场可能会将您的应用过滤仅限于具有振动功能的手机。为避免这种情况,您可以使用属性为required =“false”

的标记
 <uses-permission android:name="android.permission.VIBRATE" />
 <uses-feature android:name="there.isnt.a.vibrate.feature" android:required="false" />

这一切都记录在这里:

http://developer.android.com/guide/topics/manifest/uses-permission-element.html

http://developer.android.com/guide/topics/manifest/uses-feature-element.html

<强>无论其

没有Vibrate功能字符串,因此Android Market 不会过滤您的应用,因为您正在使用振动权限。所以你可以使用uses-permission并检查Java代码。

设备需要振动器才能与Android市场兼容,但当然这不适用于亚马逊和其他应用市场(Barnes&amp; Noble Nook没有振动)。

这是由Dianne Hackthorn(Google的Android主要开发人员)回复此主题: http://groups.google.com/group/android-developers/browse_thread/thread/7713e796ea2d0f5f

答案 1 :(得分:2)

  

它根本不起作用吗?它会阻止应用程序运行吗?

您的振动请求应该被忽略。

  

还是根本没有出现在市场上?

您无法从市场上过滤掉缺少振动电机的设备。因此,VIBRATE权限不属于if you ask for it imply a hardware feature

  

或者我是否必须询问手机是否有振动器?

您可以在API级别11及更高版本上看到Blundell的回答。