0

我有一个小问题。

按下按钮时,我的应用程序必须振动,在我的三星 S3(API 17)中一切正常,但在我的 S2(API 15)上,这不起作用。

编码:

   <uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.VIBRATE"/>

主要的

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    Vibrator x = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
    x.cancel();
    backgroundVibrate = 0;
    //final ToggleButton toggle = (ToggleButton)findViewById(R.id.toggleButton1);
    setContentView(R.layout.activity_fullscreen);

    Button fast1 = (Button) findViewById(R.id.fast1);
    fast1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            long[] pattern = { 0, 100, 300 };
            vibrate(pattern, false);
        }
    });
   public void vibrate(long[] pattern, boolean stop)
{
    // Get instance of Vibrator from current Context
    Vibrator x = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
    if (stop == false)
    {
        x.vibrate(pattern, 0);
        currentVibrate = true;
        System.out.println("vibrate ON");
    }
    if (stop == true)
    {
        x.cancel();
        currentVibrate = false;
    }

}

有人有想法吗?

谢谢

4

3 回答 3

0

那些振动持续时间真的很短。作为测试,我建议您在每个末尾加上一个零,以查看振动是否真的有效,以消除代码正常运行的问题。

然后,我想你只需要设置一个所有硬件都可以接受的持续时间(因为不同的硬件会有不同的敏感度,需要一个更好的词)。

于 2013-04-21T10:49:28.813 回答
0

完成这项工作的简单方法是使用触觉反馈

Button fast1 = (Button) findViewById(R.id.fast1);
fast1.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        v.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
    }
});

这样做的好处是您不需要在 AndroidManifest 中设置权限。请注意,您需要将触觉反馈启用为全局。从http://developer.android.com/reference/android/view/HapticFeedbackConstants.html检查它。

您可以简单地使用以下代码为您的应用程序启用触觉反馈。

Settings.System.putInt(getContentResolver(), Settings.System.HAPTIC_FEEDBACK_ENABLED, 1);

不要忘记在 AndroidManifest.xml 中添加以下权限

<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
于 2013-04-21T10:53:08.580 回答
0

我最初的解决方案一切都很好。

问题来自三星 S2 设置....

谢谢你的帮助

于 2013-04-21T18:47:06.430 回答