-
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 있을 것이고 누르면 윈도우 탐색기가 열린다. 그 안에 미디어 파일들을 넣으면 안드로이드 스튜디오에서도 들어간게 보인다. […]
-
Android 2017‧11‧14
안드로이드 Socket.io 소켓통신 하기
서버쪽이 이미 구성되어 있다는 가정으로 정리한 코드이다. 일단 안드로이드 스튜디오에서 socket.io 를 추가한다. 모듈로 추가하는 방법은 http://bongsunga.com/blog/3640 여기에 써 놓았다. 그럼 본격적으로 코드를 작성한다. AndroidManifest.xml 안에 <manifest> 안에 아래 코드를 넣어준다. <uses-permission android:name="android.permission.INTERNET" /> 아래 코드들을 MainActivity.java 에 작성하는 코드이다. 상단에 임포트 코드를 넣어준다. import com.github.nkzawa.emitter.Emitter; import com.github.nkzawa.socketio.client.IO; import com.github.nkzawa.socketio.client.Socket; 그런 후에 public class MainActivity extends […]
-
Android 2017‧11‧14
내부 저장소 파일 경로 사용하기
스마트폰을 PC에 연결하여 윈도우 탐색기에서 스마트폰의 내부 저장소에 파일을 넣어두고, 어플리케이션에서 해당 파일을 재생하거나 불러올 때 내부 저장소 경로는 아래와 같이 불러온다. Uri video = Uri.parse(Environment.getExternalStorageDirectory() + "파일명"); 혹은 폴더안에 넣어놓아서 폴더안의 영상을 불러오려면 아래 예제처럼 불러와도 된다. Uri video = Uri.parse(Environment.getExternalStorageDirectory() + "/DCIM/intro.mp4"); 안드로이드 업데이트 이 후로 위 코드만으로 제대로 불러와지지 않으면 아래 포스팅을 […]
-
Android 2017‧11‧08
SurfaceView를 이용한 비디오 플레이어 만들기 코드
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <SurfaceView android:id="@+id/surfaceView1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> In the MainAcitivity class, in the onCreate method, you write code to create a reference to SurfaceView, get the surface holder, add Callback interface to the holder, and create MediaPlayer instance. In the onSurfaceCreate method (you need […]
-
Android 2017‧11‧08
음악 플레이 리스트 만들기 (MediaPlayer)
배열에 음악 파일을 add를 통해서 넣고 리스트를 만든다. 아래 코드는 stackoverflow에 있는 해당 코드를 그대로 가져왔다. 코드를 참고해서 만들면 될 듯 하다. import android.media.MediaPlayer; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; import java.util.ArrayList; import java.util.Timer; import java.util.TimerTask; public class MainActivity extends AppCompatActivity { Timer timer; MediaPlayer mp; ArrayList<Integer> playlist; int i=0; @Override protected void […]
-
Android 2017‧11‧08
surfaceHolder.addCallback(this); 에 this 안 먹힐 때
아마 미디어 파일 중에 동영상을 띄우려고 surfaceView를 쓰는 경우에 surfaceHolder.addCallback(this); 이 코드를 넣어서 만드는 경우가 있을 것이다. 이 때 this가 오류가 나고 마우스를 올리면 오류 내용에 'addCallback (android.view.SurfaceHolder.Callback) in SurfaceHolder cannot be applied to~~~~' 라고 써있을 것이다. 코드 중에 mainActivity 를 감싼 부분을 찾아서 implements SurfaceHolder.Callback 을 뒤에 써준다. public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback { 이렇게 […]