투케이2K

429. (android/java) [android 12 / target 31] [유틸 파일] callVibrator - 모바일 진동 바이브레이션 수행 실시 본문

Android

429. (android/java) [android 12 / target 31] [유틸 파일] callVibrator - 모바일 진동 바이브레이션 수행 실시

투케이2K 2022. 12. 24. 14:05

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

 

    // TODO [SEARCH FAST] : [VOID] callVibrator : 모바일 진동 활성 메소드
    static Handler callVibratorHandler = new Handler(Looper.getMainLooper());
    public static void callVibrator(Context mContext){

        /**
         * // -----------------------------------------
         * [callVibrator 메소드 설명]
         * // -----------------------------------------
         * 1. 모바일 진동 발생 수행 메소드
         * // -----------------------------------------
         * 2. 필요 퍼미션 :
         *   - <uses-permission android:name="android.permission.VIBRATE" />
         * // -----------------------------------------
         * 3. 호출 방법 : C_App.callVibrator(A_Intro.this);
         * // -----------------------------------------
         * */

        try {
            // Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
            // vibrator.vibrate(1000); // [miliSecond, 지정한 시간동안 진동]

            Vibrator mVibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
            long[] pattern = {100, 1000, 100, 1000};
            //long[] pattern = {0};
            if (mVibrator != null) {
                AudioAttributes audioAttributes = new AudioAttributes.Builder()
                        .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                        .setUsage(AudioAttributes.USAGE_ALARM) //key
                        .build();
                if (callVibratorHandler != null){
                    mVibrator.vibrate(pattern, 0, audioAttributes);
                    callVibratorHandler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            mVibrator.cancel(); // 진동 취소 실시
                        }
                    }, 1000); //1초뒤 실행 (작업 예약)

                    // [로그 출력 실시]
                    Log.i("---","---");
                    Log.d("//===========//","================================================");
                    Log.i("","\n"+"[C_App >> callVibrator() :: 모바일 진동 활성 실시]");
                    Log.d("//===========//","================================================");
                    Log.i("---","---");
                }
            }
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }

 

반응형
Comments