Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 암호화
- EC2
- model1
- SQL
- HTML
- phaser
- node.js
- CSS
- JSP
- docker
- autowired
- websocket
- 웹소켓
- AWS
- 알고리즘
- Servlet
- 배포
- Spring
- RDS
- 도커
- 블록체인
- 비트코인
- express
- tiles.xml
- Cookie
- jQuery
- JavaScript
- Ajax
- PL/SQL
- 웹게임
Archives
- Today
- Total
記錄
사용자 알림 효과 -진동울리기, 알림음 본문
진동울리기 과정
1) AndroidManifest.xml에서 퍼미션을 설정한다
2) .xml로 activity 작성
3) .java로 이벤트 처리
AndroidManifest.xml에서 퍼미션 처리
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kimjungkwon.layouttestlast">
<uses-permission android:name="android.permission.VIBRATE"/>
// 여기 이렇게 단 한 줄이면 해당 어플이 진동에 대한 퍼미션을 획득
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
.xml로 Activity 작성(특별할 것이 하나도 없다)
<?xml version="1.0" encoding="utf-8"?>
<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/vibration"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Vibration"/>
<Button
android:id="@+id/systembeep"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="system beep"/>
<Button
android:id="@+id/custombeep"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="custom beep"/>
</LinearLayout>
.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
// 클릭시 이벤트 처리를 위해서
// implements View.OnClickLister했고
// 이에 따라 abstract method인
// onClick을 구현해주어야 컴파일 가능
Button vbbt;
Button sbbt;
Button ctbbt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vbbt = (Button) findViewById(R.id.vibration);
sbbt = (Button) findViewById(R.id.systembeep);
ctbbt = (Button) findViewById(R.id.custombeep);
vbbt.setOnClickListener(this); // 기본적인 버튼 이벤트 처리
sbbt.setOnClickListener(this);
ctbbt.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v == vbbt){
Vibrator vib = (Vibrator)getSystemService(VIBRATOR_SERVICE);
vib.vibrate(1000);
// Vibrator를 만들어서 1000밀리 세컨드(1초) 진동
// vib.vibrate(new long[]{500, 1000, 500, 1000}, -1)으로 할 경우
// 홀수: 대기시간, 짝수: 진동시간, 0: 무한진동 until cancel, -1: 한번만 패턴대로 진동
} else if (v == sbbt){
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone ringtone = RingtoneManager.getRingtone(getApplicationContext(), notification);
ringtone.play();
// 책에서 아주 무책임하게도 아무런 설명이 없다. 일단 스킵.
// 알림음은 그냥 이런 방식이라는 것만 알아두자
} else if (v == ctbbt){
MediaPlayer player = MediaPlayer.create(this,R.raw.nel);
// 여기서 nel은 내가 raw 폴더에 넣어둔 .ogg여야만 한다.
}
}
}
'Mobile > Android' 카테고리의 다른 글
프로그레스 다이얼로그 (0) | 2018.01.23 |
---|---|
사용자 알림 효과 -다이얼로그(토스트, 알림창, 목록 등) (0) | 2018.01.20 |
레이아웃을 활용한 다양한 뷰 배치 - TableLayout, GridLayout (0) | 2018.01.13 |
레이아웃을 활용한 다양한 뷰 배치 - FrameLayout (0) | 2018.01.11 |
레이아웃을 활용한 다양한 뷰 배치 - RelativeLayout, ConstraintLayout (0) | 2018.01.11 |
Comments