본문 바로가기

안드로이드 개발

안드로이드에서 Device의 고유값 알아보기

프로그래밍을 하다보면 특정 장치라는것을 식별하기 위한 값들을 가져와서 각 장치별로 구분이 가능해야 하는데,
이때 쓸만한 것이 전화번호, IMEI값(?), MAC주소 같은것이 될것 같네요.

// 고유 값 알아보기
// 휴대폰의 전화번호 가져오기
        TelephonyManager mgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        String phoneNumber = mgr.getLine1Number();

        WifiManager wifi = (WifiManager)this.getSystemService(Context.WIFI_SERVICE);
       
        String imei = mgr.getDeviceId();
        WifiInfo info = wifi.getConnectionInfo();

// 위와 같은 소스를 통해서 phoneNumber 변수와, imei에는 특정값이 들어가게 될 것입니다.
// 맥주소의 경우는 info.getMacAddress 로 가져와서 바로 출력하도록 했네요.
       
        Log.d("Device Id : ", "휴대폰 번호 = " + phoneNumber + "  단말기 번호 =" + imei + "  맥주소 : " + info.getMacAddress());


해당 내용을 작성하시고 에뮬레이터 상에서 테스트 하시면, phoneNumber 를 제외하고는 제대로 나오지 않을 것입니다.
아마도 imei 는 16자리의 숫자 0이 찍히게 될 것이고, Mac주소는 null 값이 나오게 됩니다.

imei값은 들어있지 않고, Mac주소의 경우는 에뮬레이터에서 Wifi 드라이버를 로딩해오지 않기 때문에 없는것으로 나온답니다.