-
Android 2017‧12‧28
반복 실행하기 위한 timertask
반복해서 작업을 수행하기 위한 코드 Timer mLongPressTimer = null; TimerTask t; t = new TimerTask() { public void run() { //반복 작업 내용 } }; mLongPressTimer = new Timer(); mLongPressTimer.schedule(t, 0, 1000); 1초마다 반복 작업 함. 종료할 때는 아래 코드로 mLongPressTimer.cancel(); t.cancel();
-
Android 2017‧12‧26
안드로이드로 핑 테스트 하기
네트워크 체크할 때 사용했다. String host = "192.168.0.100"; String cmd = "ping -c 1 -W 10 " + host; try { Process proc = Runtime.getRuntime().exec(cmd); proc.waitFor(); int result = proc.exitValue(); Log.d("------result", result); } catch (Exception e) { Log.d("------ping", e.getMessage()); }
-
Android 2017‧12‧22
int 를 String으로
int result = 1; 이렇게 인트 값을 지정하거나 인수로 받아서 문자열로 변환하여 다시 사용할 때 아래처럼 바꾼다. String.valueOf(result)
-
Android 2017‧12‧07
mediaPlayer 재생 완료 이벤트 받기
미디어플레이어 재생이 끝나고 다음 함수를 실행하거나 할 때 요긴하게 쓰인다. MediaPlayer.setOnCompletionListener 를 이용해서 만들면 된다. 상단에 미디어 플레이어 import 코드를 넣어주고 import android.media.MediaPlayer; activity class 안에 미디어 플레이어를 아래 예제처럼 MediaPlayer mPlayer; 를 추가해준다. public class SubActivity extends AppCompatActivity implements SurfaceHolder.Callback{ MediaPlayer mPlayer; 이제 미디어플레이어를 불러오는 곳에서 아래 코드를 작성한다. mPlayer = new MediaPlayer(); […]
-
Android 2017‧12‧01
서비스에서 다른 Activity(.java) 안의 method 호출 (브로드 캐스트)
java > 서비스로 작동하는 .java 파일을 열어서 아래 코드를 상단에 넣어 임포트 시켜준다. import android.content.Intent; import android.support.v4.content.LocalBroadcastManager; 그리고 public class MyService extends Service{ 이렇게 보이는 서비스 클래스 안에 아래 코드를 넣어준다. //브로드 캐스트 보내기 private void sendMessage() { Intent intent = new Intent("naminsik"); intent.putExtra("message", "전달하고자 하는 데이터"); LocalBroadcastManager.getInstance(this).sendBroadcast(intent); } 위에 보면 "naminsik" 은 통로 같은 […]
-
Android 2017‧11‧30
디바이스 현재 아이피 주소 가져오기
내가 현재 부여받은 네트워크의 아이피를 보려고 할 때 java > MainActivity.java 에 class MainActivity 안에 아래 코드를 넣어준다. public static String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { InetAddress inetAddress = enumIpAddr.nextElement(); if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { return […]
-
Android 2017‧11‧29
화면 안꺼지게 설정
여러가지 방법이 있긴 한데 난 해당 res > layout > 해당.xml에 <android.support.constraint.ConstraintLayout/> 여기에 android:keepScreenOn="true"로 속성을 넣어준다. 예제는 아래와 같다. <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.insiknam.test.MainActivity" android:keepScreenOn="true"> 이보다 좋은 방법이나 여러가지 상황에 따라 선택해서 쓰면 된다. 그 여러가지 방법은 https://medium.com/marojuns-android/keeping-the-device-awake-b22b402a7f5e 이 곳에 아주 훌륭하게 정리해 놓으셨다.
-
Android 2017‧11‧29
입력폼 Edit Text에 수정 안되게 하기
안드로이드 만들 때 텍스트 입력 폼을 <Edit Text/>를 이용해서 만든다. 그런데 가끔 readonly, 즉 수정 불가의 입력칸을 만들고 그 곳에 어플에서 만들어진 값을 노출하고 싶을 때가 있다. res > layout > 해당.xml 파일을 열어서 Edit Text에 android:focusableInTouchMode="false" 를 추가해 준다. 아래는 예제이다. <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/deviceip" android:textSize="16dp" android:textStyle="bold" android:focusableInTouchMode="false"/>
-
Android 2017‧11‧14
안드로이드 프로젝트 안에 미디어 파일을 넣고 경로 불러오기
안드로이드 스튜디오에서 패키지에 미디어 파일들을 넣고 코드로 파일 경로 불러올 때가 있다. 일단 res 폴더안에 raw가 없을 건데 raw 폴더는 새로 만든다. https://www.google.co.kr/search?q=android+studio+create+raw+folder&dcr=0&source=lnms&tbm=isch&sa=X&ved=0ahUKEwi6hrvevb3XAhULI5QKHdHGC7oQ_AUICygC&biw=1508&bih=918 어렵지 않은 거라 구글링에도 참 많이 나온다. 그런 후에 raw 폴더에 마우스 오른쪽 누르면 Show in Explorer 있을 것이고 누르면 윈도우 탐색기가 열린다. 그 안에 미디어 파일들을 넣으면 안드로이드 스튜디오에서도 들어간게 보인다. […]