Notice
Recent Posts
Recent Comments
Link
투케이2K
542. (Android/Java) [유틸 파일] getMyHotSpotIp : 핫스팟 활성 IP 주소 확인 본문
개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Java
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [RETURN] getMyHotSpotIp : 핫스팟 활성 IP 주소 확인
// -----------------------------------------------------------------------------------------
static String MyHotSpotIp_ReturnData = "";
static String MyHotSpotIp_M_LOG = "";
public static Observable<String> getMyHotSpotIp(Context mContext) {
/**
* // -----------------------------------------
* [getMyHotSpotIp 메소드 설명]
* // -----------------------------------------
* 1. 핫스팟 활성 IP 주소 확인
* // -----------------------------------------
* 2. 호출 방식 :
*
C_App.getMyHotSpotIp(A_Intro.this)
.subscribeOn(AndroidSchedulers.mainThread()) // [Observable (생성자) 로직을 IO 스레드에서 실행 : 백그라운드]
.observeOn(Schedulers.io()) // [Observer (관찰자) 로직을 메인 스레드에서 실행]
.subscribe(new Observer<String>() { // [Observable.create 타입 지정]
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull String value) {
S_Log.ltw("================================================");
S_Log.cnt("["+ACTIVITY_NAME+" >> getMyHotSpotIp :: onNext]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[VALUE :: "+String.valueOf(value)+"]");
S_Log.lbw("================================================");
}
@Override
public void onError(@NonNull Throwable e) {
S_Log.lte("================================================");
S_Log.cnt("["+ACTIVITY_NAME+" >> getMyHotSpotIp :: onError]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[ERROR :: "+String.valueOf(e.getMessage())+"]");
S_Log.lbe("================================================");
}
@Override
public void onComplete() {
}
});
*
* // -----------------------------------------
* 3. 리턴 데이터 : 192.168.252.
* // -----------------------------------------
* */
// [로직 처리 실시]
return Observable.create(subscriber -> {
// [리턴 변수 선언]
MyHotSpotIp_ReturnData = "";
// [로그 출력 변수]
MyHotSpotIp_M_LOG = "";
// [핫스팟 활성 상태 확인]
if (C_StateCheck.getHotspotEnable(mContext) == true){
try {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
if (intf.getName().contains("wlan")) {
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr
.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()
&& (inetAddress.getAddress().length == 4)) {
// [로그 찍기]
MyHotSpotIp_M_LOG = "[SUCCESS] : " + String.valueOf(inetAddress.getHostName());
// [리턴 데이터 삽입]
MyHotSpotIp_ReturnData = String.valueOf(inetAddress.getHostAddress());
}
}
}
}
// [최종 출력된 정보에서 데이터 변경 수행]
int idx = MyHotSpotIp_ReturnData.lastIndexOf(".");
if (idx > 0){
MyHotSpotIp_ReturnData = MyHotSpotIp_ReturnData.substring(0, idx);
if (MyHotSpotIp_ReturnData.endsWith(".") == false){
MyHotSpotIp_ReturnData = MyHotSpotIp_ReturnData + ".";
}
// [로그 출력 실시]
S_Log.ltw("================================================");
S_Log.cnt("["+ACTIVITY_NAME+" >> "+C_Util.getNowMethod(1)+" :: 핫스팟 IP 주소 확인]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[LOG :: "+String.valueOf(MyHotSpotIp_M_LOG)+"]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[RETURN :: "+String.valueOf(MyHotSpotIp_ReturnData)+"]");
S_Log.lbw("================================================");
// [결과 반환 수행]
subscriber.onNext(MyHotSpotIp_ReturnData);
subscriber.onComplete();
}
else {
// [로그 찍기]
MyHotSpotIp_M_LOG = "[ERROR] : INDEX CHECK ERROR";
// [리턴 데이터 삽입]
MyHotSpotIp_ReturnData = "";
// [로그 출력 실시]
S_Log.lte("================================================");
S_Log.cnt("["+ACTIVITY_NAME+" >> "+C_Util.getNowMethod(1)+" :: 핫스팟 IP 주소 확인]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[LOG :: "+String.valueOf(MyHotSpotIp_M_LOG)+"]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[RETURN :: "+String.valueOf(MyHotSpotIp_ReturnData)+"]");
S_Log.lbe("================================================");
// [결과 반환 수행]
subscriber.onNext(MyHotSpotIp_ReturnData);
subscriber.onComplete();
}
}
catch (Exception e){
e.printStackTrace();
// [로그 찍기]
MyHotSpotIp_M_LOG = "[EXCEPTION] : [1] : " + String.valueOf(e.getMessage());
// [리턴 데이터 삽입]
MyHotSpotIp_ReturnData = "";
// [로그 출력 실시]
S_Log.lte("================================================");
S_Log.cnt("["+ACTIVITY_NAME+" >> "+C_Util.getNowMethod(1)+" :: 핫스팟 IP 주소 확인]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[LOG :: "+String.valueOf(MyHotSpotIp_M_LOG)+"]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[RETURN :: "+String.valueOf(MyHotSpotIp_ReturnData)+"]");
S_Log.lbe("================================================");
// [결과 반환 수행]
subscriber.onNext(MyHotSpotIp_ReturnData);
subscriber.onComplete();
}
}
});
thread.start(); // [스레드 수행]
}
catch (Exception e){
e.printStackTrace();
// [로그 찍기]
MyHotSpotIp_M_LOG = "[EXCEPTION] : [2] : " + String.valueOf(e.getMessage());
// [리턴 데이터 삽입]
MyHotSpotIp_ReturnData = "";
// [로그 출력 실시]
S_Log.lte("================================================");
S_Log.cnt("["+ACTIVITY_NAME+" >> "+C_Util.getNowMethod(1)+" :: 핫스팟 IP 주소 확인]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[LOG :: "+String.valueOf(MyHotSpotIp_M_LOG)+"]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[RETURN :: "+String.valueOf(MyHotSpotIp_ReturnData)+"]");
S_Log.lbe("================================================");
// [결과 반환 수행]
subscriber.onNext(MyHotSpotIp_ReturnData);
subscriber.onComplete();
}
}
else {
// [로그 삽입]
MyHotSpotIp_M_LOG = "[ERROR] : HotSpot Off State";
// [리턴 데이터 삽입]
MyHotSpotIp_ReturnData = "";
// [로그 출력 실시]
S_Log.lte("================================================");
S_Log.cnt("["+ACTIVITY_NAME+" >> "+C_Util.getNowMethod(1)+" :: 핫스팟 IP 주소 확인]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[LOG :: "+String.valueOf(MyHotSpotIp_M_LOG)+"]");
S_Log.cnt("-----------------------------------------");
S_Log.cnt("[RETURN :: "+String.valueOf(MyHotSpotIp_ReturnData)+"]");
S_Log.lbe("================================================");
// [결과 반환 수행]
subscriber.onNext(MyHotSpotIp_ReturnData);
subscriber.onComplete();
}
});
}
반응형
'Android' 카테고리의 다른 글
Comments