진동기(진동기)


이 섹션 소개:

이 섹션에서는 휴대폰과 함께 제공되는 진동기인 Vibrator(진동기)를 소개합니다. Baidu에 직접 가서 진동기를 검색하지 마세요. 검색 결과는 그림에 표시된 신비한 소품 1.gif일 수도 ​​있고 다른 신비한 소품일 수도 있습니다:

자, 이 섹션에서 소개한 진동기로 돌아가면 실제로 신체 진동을 위해 Android에서 제공하는 서비스입니다! 예를 들어, 푸시 메시지를 받으면 미리 알림에서 진동을 설정할 수 있습니다. 비행기가 폭파되면 진동하는 "저크 오프" 게임과 같은 게임이 필수라는 점을 기억하세요!

이 진동기의 사용법을 익히기 위해 아래에 간단한 예를 작성해 보겠습니다!

공식 API 문서: Vibrator


1. 진동기 인스턴스 가져오기:


Vibrator vb = (Vibrator)getSystemService(Service.VIBRATOR_SERVICE);


2.

    abstract void
  • cancel(): 진동기를 끄거나 중지합니다
  • abstract boolean
  • hasVibrator(): 하드웨어에 진동기가 있는지 확인
  • void
  • vibrate(긴 밀리초): 휴대전화 진동을 제어하여 milliseconds milliseconds
  • void
  • vibrate(long[] 패턴,int 반복): 패턴으로 지정된 패턴으로 진동할 휴대폰을 지정하세요! 예를 들어, 패턴은 새로운 int[200,400,600,800]입니다. 이는 200,400,600,800이 되는 시점에 진동기를 교대로 시작하고 끄는 것을 의미합니다! 두 번째는 반복 횟수입니다. -1이면 한 번만 진동합니다. 0이면 항상 진동합니다. 그 밖에도 거의 사용되지 않는 방법이 2가지 있습니다~ 그런데 진동기를 사용하려면 AndroidManifest.xml에 다음 권한을 추가해야 합니다. <uses-permission android:name="android.permission.VIBRATE"/>

3. 사용 예: 다양한 주파수로 진동기 설정:

가장 널리 사용되는 것은 진동기입니다. 앱마켓에 소위 모바일 안마기 앱이 너무 많아서 그냥 다운받았어요. 살펴보니 모두 비슷합니다. 이 가젯의 다운로드 수는 80,000회가 넘습니다...글쎄, 그다지 많은 것 같지는 않습니다. 그러나 일반적인 기능은 진동 주파수를 전환하여 수행되며 소위 마사지 효과가 실제로 효과적인지는 알 수 없습니다. 그럼 다음에는 간단한 마사지기를 구현해 보겠습니다! 실제로 핵심은 vibrate()의 배열 매개변수입니다. 필요에 따라 배열을 작성하면 됩니다! 다음 코드는 실제 머신에서 테스트해야 합니다!

렌더링 실행:

2.gif

구현 코드:

간단한 레이아웃 파일, 버튼 5개:

activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    
    <Button
        android:id="@+id/btn_hasVibrator"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="判断是否有振动器" />


    <Button
        android:id="@+id/btn_short"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="短振动" />

    <Button
        android:id="@+id/btn_long"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="长振动" />

    <Button
        android:id="@+id/btn_rhythm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="节奏振动" />

    <Button
        android:id="@+id/btn_cancle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="取消振动" /></LinearLayout>

그런 다음 MainActivity.java 부분이 나옵니다:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button btn_hasVibrator;
    private Button btn_short;
    private Button btn_long;
    private Button btn_rhythm;
    private Button btn_cancle;
    private Vibrator myVibrator;
    private Context mContext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获得系统的Vibrator实例:
        myVibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);
        mContext = MainActivity.this;
        bindViews();
    }

    private void bindViews() {
        btn_hasVibrator = (Button) findViewById(R.id.btn_hasVibrator);
        btn_short = (Button) findViewById(R.id.btn_short);
        btn_long = (Button) findViewById(R.id.btn_long);
        btn_rhythm = (Button) findViewById(R.id.btn_rhythm);
        btn_cancle = (Button) findViewById(R.id.btn_cancle);

        btn_hasVibrator.setOnClickListener(this);
        btn_short.setOnClickListener(this);
        btn_long.setOnClickListener(this);
        btn_rhythm.setOnClickListener(this);
        btn_cancle.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_hasVibrator:
                Toast.makeText(mContext, myVibrator.hasVibrator() ? "当前设备有振动器" : "当前设备无振动器",
                        Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_short:
                myVibrator.cancel();
                myVibrator.vibrate(new long[]{100, 200, 100, 200}, 0);
                Toast.makeText(mContext, "短振动", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_long:
                myVibrator.cancel();
                myVibrator.vibrate(new long[]{100, 100, 100, 1000}, 0);
                Toast.makeText(mContext, "长振动", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_rhythm:
                myVibrator.cancel();
                myVibrator.vibrate(new long[]{500, 100, 500, 100, 500, 100}, 0);
                Toast.makeText(mContext, "节奏振动", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn_cancle:
                myVibrator.cancel();
                Toast.makeText(mContext, "取消振动", Toast.LENGTH_SHORT).show();
        }
    }
}

그런데 진동기 권한을 놓치지 마세요!

<uses-permission android:name="android.permission.VIBRATE"/>

4. 샘플 코드 다운로드:

VibratorDemo.zip


이 섹션 요약:

자, 이 섹션에서는 진동기(진동기)의 기본 사용법을 배웠습니다. 지금 가입하세요 APP에서 신청서를 HI로 설정하세요~ 뭐, 그게 다입니다. 감사합니다. 시간이 늦었으니 Xiaozhu는 빨리 집에 가야 합니다! 결국 나는 아직 어린 소녀입니다! 젖으면 곤란해요~3.gif