마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

사용기기의IP Address를 출력하고싶은데..

0 추천

[IpText.java]

package com.example.iptest;

import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

import android.support.v7.app.ActionBarActivity;

import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;


public class IpText extends ActionBarActivity {

 
 public final static int INET4ADDRESS = 1;
 public final static int INET6ADDRESS = 2;

public static String getLocalIpAddress(int type) {
  try {
   for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
     en.hasMoreElements();) {
    NetworkInterface intf = ( NetworkInterface ) en.nextElement();
    
    for (Enumeration enumIpAddr = intf.getInetAddresses();
      enumIpAddr.hasMoreElements();) {
     InetAddress inetAddress = ( InetAddress ) enumIpAddr.nextElement();

     if (!inetAddress.isLoopbackAddress()) {
      switch (type) {
      case INET6ADDRESS:
       if (inetAddress instanceof Inet6Address) {
        return inetAddress.getHostAddress().toString();
       }

       break;


      case INET4ADDRESS:
       if (inetAddress instanceof Inet4Address) {
        return inetAddress.getHostAddress().toString();
       }
       break;
      }   
     }
    }
   }
  } catch (SocketException ex) {
  }
  return null;
 }


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

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.ip_text, menu);
  return true;
 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
  // Handle action bar item clicks here. The action bar will
  // automatically handle clicks on the Home/Up button, so long
  // as you specify a parent activity in AndroidManifest.xml.
  int id = item.getItemId();
  if (id == R.id.action_settings) {
   return true;
  }
  return super.onOptionsItemSelected(item);
 }
}

 

 

[mrchu.xml]

<RelativeLayout 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: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=".IpText" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="28dp"
        android:layout_marginTop="25dp"
        android:text="IP Checker" />

    <TextView
        android:id="@+id/t1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView2"
        android:layout_below="@+id/textView2"
        android:layout_marginTop="22dp"
        android:text="현재 아이피 : " />

  <EditText
      android:id="@+id/serverIP"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignBaseline="@+id/t1"
      android:layout_alignBottom="@+id/t1"
      android:layout_toRightOf="@+id/t1"
      android:ems="10"
      android:hint="000.000.000.00" >

      
      
     
      <requestFocus />
  </EditText>

  <Button
      android:id="@+id/button1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_below="@+id/serverIP"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="32dp"
      android:text="  재  접  속   " />

</RelativeLayout>

 

 

 

 

일단 재접속이라는 버튼은 안사용하고 가장먼저 출력을 ip address를 출력하고 싶은데;

xml쪽으로 해서 출력을 해야하는데 어떻게 출력을 해야 할까요???????

 

 

 

 

음냥꾸닌인강 (340 포인트) 님이 2014년 7월 21일 질문

1개의 답변

0 추천
 
채택된 답변
스레드와 핸들러를 통해서 출력해주시면 됩니다.

 

onCreate에서 스레드로 ip주소를 가져오시고

완료되면 핸들러를 통해서 출력해주면 됩니다.

 

이러한 과정없이 xml 만으로 바로 ip를 출력할 수는 없습니다.
원조안드로이드 (58,190 포인트) 님이 2014년 7월 21일 답변
음냥꾸닌인강님이 2014년 7월 21일 채택됨
으아.. 스레드로 ip주소 못가져오겠어요ㅠㅠ
...