Ringtone - 진동 울리기

 

 

 

0. 퍼미션 설정

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

 

 

 

 

1. xml 코드

 

 

 

 

2. java 코드

- 스마트폰에 등록된 효과음의 식별자를 Uri타입으로 획득해야한다.

 

- 효과음은 RingtonManager의 getDefaultUri() 함수를 이용해서 획득하는데,

   ALAM, NOTICATION, RINGTON 이 있다.

// 푸시 알림 메시지 소리

// RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

// 모닝콜 알람 소리

// RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);

 

- Uri 값으로 식별되는 효과음을 재생할 수 있는 Ringtone을 얻어 play()함수로 재생한다.

 

- 내 폰에 위치한 음악

// Uri.parse("android.resource://패키지명/raw/파일명")

 

 

 

 

 

 

3. 전체코드

public class DelRing extends AppCompatActivity {

    Ringtone rt;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test2);

        Button b1 = (Button)findViewById(R.id.button1);
        Button b2 = (Button)findViewById(R.id.button2);
        Button b3 = (Button)findViewById(R.id.button3);
        Button b4 = (Button)findViewById(R.id.button4);

        // 소리
        // 1. 소리 권한을 획득해야한다. AndroidManifest.xml
        // 2. Vibrator 객체를 얻어서 진동시킨다
        final Vibrator vibrator = (Vibrator)getSystemService(VIBRATOR_SERVICE);


        // 알람울림
        b1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
                rt = RingtoneManager.getRingtone(getApplicationContext(),notification);
                rt.play();
            }
        });

        // 띵똥 같은거
        b2.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Uri notification1 = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
                rt = RingtoneManager.getRingtone(getApplicationContext(),notification1);
                rt.play();
            }
        });

        // 내 폰에 위치란 음악
        b3.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Uri notification2 = Uri.parse("android.resource://패키지이름/raw/파일명");
                rt = RingtoneManager.getRingtone(getApplicationContext(),notification2);
                rt.play();
            }
        });

        // 정지
        b4.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                rt.stop();
            }
        });
    }
}