我想在我的应用程序中使用振动器方法,我已经让它在我的手机上工作,它有一个伟大的振动器。但是没有振动器的手机会发生什么。它根本不起作用吗?它会阻止应用程序运行吗?还是根本没有出现在市场上?或者我是否必须询问手机是否有振动器?
我还想知道这段代码是好还是需要调整?这是我的代码..
Vibrator vi;
vi = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vi.vibrate(100);
<uses-permission android:name="android.permission.VIBRATE" /> (In manifest)
谢谢,任何帮助都会很棒。
答案 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的回答。