안드로이드 최신폰 WifiMac Address 가져오기
2018. 12. 17. 18:13ㆍIT & Programming
버전이 올라가면서 기존 소스코드에 문제가 있어서 테스트 해본 소스코드
우선 안드로이드 메니페스트에
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
정의 해주고
아래 소스코드 처럼 intf.getHardwareAddress(); 에서 하드웨어 주소를 가져와서 처리하면 사용가능합니다.
public class MainActivity extends AppCompatActivity {
Button btn1 = findViewById(R.id.btn1);
TextView text1 = findViewById(R.id.text1);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button.OnClickListener mClickListener = new View.OnClickListener(){
@Override
public void onClick(View v) {
// text1.setText(getMACAddress().toString());
text1.setText(macAddress);
}
};
}
public static String getMACAddress(String interfaceName) {
try {
List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface intf : interfaces) {
if (interfaceName != null) {
if (!intf.getName().equalsIgnoreCase(interfaceName)) continue;
}
byte[] mac = intf.getHardwareAddress();
if (mac==null) return "";
StringBuilder buf = new StringBuilder();
for (int idx=0; idx<mac.length; idx++)
buf.append(String.format("%02X:", mac[idx]));
if (buf.length()>0) buf.deleteCharAt(buf.length()-1);
return buf.toString();
}
} catch (Exception ex) { } // for now eat exceptions
return "";
}
public String macAddress = getMACAddress("wlan0");
}
반응형
'IT & Programming' 카테고리의 다른 글
jsp 학습 메모하기 (0) | 2021.03.14 |
---|---|
[계약서서식] 소프트웨어 용역계약서 양식 (4) | 2020.03.09 |
android 6.0 이상 퍼미션 체크 로직 (0) | 2019.10.07 |
안드로이드 반투명 효과 주기 (0) | 2019.01.10 |
안드로이드 액티비티 라이프 사이클 (0) | 2019.01.07 |