要在Android中实现震动50ms,并将震动等级设置为低,你可以使用Vibrator类。下面是一个简单的代码示例,展示如何实现这个功能:
java展开代码import android.content.Context;
import android.os.VibrationEffect;
import android.os.Vibrator;
public void vibratePhone(Context context) {
    Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
    if (vibrator != null && vibrator.hasVibrator()) {
        // 设置震动等级低一点,使用VibrationEffect.DEFAULT_AMPLITUDE的一半
        int vibrationAmplitude = VibrationEffect.DEFAULT_AMPLITUDE / 2;
        VibrationEffect vibrationEffect = VibrationEffect.createOneShot(50, vibrationAmplitude);
        vibrator.vibrate(vibrationEffect);
    }
}
Vibrator:获取系统的震动服务。
VibrationEffect.createOneShot(50, vibrationAmplitude):创建一个持续50ms的震动效果,并将震动等级设置为默认等级的一半。
vibrator.vibrate(vibrationEffect):让设备执行震动。
这个代码可以放在你的活动或服务中,只要传入Context即可。这样可以实现设备震动50ms,并且震动等级相对较低。
要调用上面提供的震动功能代码,你需要在合适的地方使用 vibratePhone 方法。以下是如何在一个 Android 活动(Activity)中调用这个方法的示例。
java展开代码import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 调用震动方法
        vibratePhone(this);
    }
    // 震动方法的定义
    private void vibratePhone(Context context) {
        Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
        if (vibrator != null && vibrator.hasVibrator()) {
            // 设置震动等级低一点,使用VibrationEffect.DEFAULT_AMPLITUDE的一半
            int vibrationAmplitude = VibrationEffect.DEFAULT_AMPLITUDE / 2;
            VibrationEffect vibrationEffect = VibrationEffect.createOneShot(50, vibrationAmplitude);
            vibrator.vibrate(vibrationEffect);
        }
    }
}
在 MainActivity 的 onCreate 方法中,调用了 vibratePhone(this),并将当前活动的 Context 传递给方法。
vibratePhone 方法会在活动创建时执行设备震动50ms。
你可以在任何需要的地方调用这个方法,例如按钮点击事件、某个特定条件触发时等。
java展开代码import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 查找按钮
        Button vibrateButton = findViewById(R.id.vibrateButton);
        // 设置按钮点击监听器
        vibrateButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 按钮点击时调用震动方法
                vibratePhone(MainActivity.this);
            }
        });
    }
    // 震动方法的定义
    private void vibratePhone(Context context) {
        Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
        if (vibrator != null && vibrator.hasVibrator()) {
            int vibrationAmplitude = VibrationEffect.DEFAULT_AMPLITUDE / 2;
            VibrationEffect vibrationEffect = VibrationEffect.createOneShot(50, vibrationAmplitude);
            vibrator.vibrate(vibrationEffect);
        }
    }
}
在这个示例中,vibrateButton 是一个按钮的ID,当用户点击按钮时,会触发震动。


本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!