安卓设备震动不起作用

6
我有一个应用程序,使用两个设备进行测试。一个是LG GW620,另一个是三星Spica。 当用户触摸屏幕时,我希望设备振动。
实际上,在LG GW620上,当我触摸屏幕时,设备会振动。但是在Spica上不会……
我查看了Spica上的设置,但是振动器已经被勾选,所以我不明白为什么它不会振动。
在我的应用程序中,我有以下代码:<uses-permission android:name="android.permission.VIBRATE"></uses-permission> 在代码中:
Vibrator vibrator =(Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
            vibrator.vibrate(100);

但我认为这不是最好的做法。我希望设备在每次点击时都会震动,但我不知道是否需要为每个 OnClick 创建一个 Vibrator?还是我可以只为整个应用程序创建一个 Vibrator?


特别是为什么它在 Spica 上无法正常工作?

2个回答

4
有趣。在您的按钮的onClick中,您应该加入震动功能。由于它是以毫秒为单位计算的,我建议将其设置为500,表示半秒钟,而不是0.1秒钟。
void onCreate() {

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

    Button b = (Button) findViewById(R.id.button);
    b.setOnClickListener(new View.OnClickListener() {
        void onClick() {
            mVibrator.vibrate(500);
        }
    });
}

好的,所以我必须为应用程序中的每个按钮/ImageView都这样做吗?没有其他方法吗?因为我的应用程序上有30或40个按钮,所以这将非常耗时。 - Nanis
1
如果您正在使用1.6 SDK(版本4),则可以在xml中设置Views的onClick方法。因此,对于每个按钮,您可以设置onClick,在您的Activity中,该方法必须具有与onClick(View v)匹配的签名,其中v将是单击的按钮。对于每个按钮,请设置android:onClick =“onClick”,其中onClick是Activity中onClick方法的名称。http://developer.android.com/reference/android/R.attr.html#onClick - Robby Pond
非常感谢您的回答,这很有帮助。您有任何想法为什么Spica 没有震动,而LG GW620有吗? - Nanis
不。也许尝试将时间增加到500而不是100。也许它震动得太快了,你没注意到哈哈。 - Robby Pond
一开始我设置了1秒,哈哈,这太长了。100毫秒就可以了,在LG上没有问题。 - Nanis
1
还有别忘了在你的清单文件中添加<uses-permission android:name="android.permission.VIBRATE"/>。 - eveliotc

0

几乎所有的互联网解决方案似乎都缺少了某些东西......(语境) 这里有一个可行的解决方案......

    Vibrator v = (Vibrator) getApplicationContext().getSystemService(Context.VIBRATOR_SERVICE);
    v.vibrate(100);

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