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

getSSID 와 if문 관련 오류 질문 드립니다.

0 추천
String cwifissid; // 문자열 변수 선언
String wifissid = "와이파이 SSID";  // 문자열 변수 선언 = "무선 랜 ID"
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 스위치 버튼을 누름
WifiOnOff(true); // 와이파이를 켬
wifimanager = (WifiManager) getSystemService(Context.WIFI_SERVICE); // WI-FI 상태 얻기
cwifissid = wifimanager.getConnectionInfo().getSSID(); // WI-FI SSID 얻기
 
if (cwifissid.equals(wifissid)) 
이쪽에 명령어 추가
 
// WI-FI 켜기/끄기 메소드
public void WifiOnOff(boolean status) {
wifimanager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); // WI-FI 상태 얻기
if (status == true && !wifimanager.isWifiEnabled()) {
wifimanager.setWifiEnabled(true); // WI-FI 켜기
} else if (status == false && wifimanager.isWifiEnabled()) {
wifimanager.setWifiEnabled(false); // WI-FI 끄기
 

이런식으로 와이파이를 켜고

특정한 SSID 의 와이파이에 접속 되었을 때

조건문 if문을 걸어 명령어를 쓰려고 합니다.

앱을 실행 후 스위치 버튼을 누르면 와이파이는 켜지긴 하는데

갑자기 앱이 중지되었다는 오류 메시지가 뜨면서 앱이 종료 됩니다.

if (cwifissid.equals(wifissid)) 이 구문을 주석 처리 해서 테스트 했을 때 오류가 안나는 걸 봐서는

이 구문이 잘못된 것 같은데요...

근데 신기한 건 미리 와이파이를 켜놓고 앱을 실행해서

와이파이 켜기 스위치 버튼을 누르면 아무 문제 없이 잘 동작한다는 겁니다.

오류 안나도록 정상적으로 동작 시킬 수 있는 방법 없을 까요... 

tkpinkbony (540 포인트) 님이 2014년 6월 10일 질문
tkpinkbony님이 2014년 6월 10일 수정

1개의 답변

0 추천
cwifissid 가 null 인것 아닌가요? null 체크 하셔야죠.
 
그리고 이정도 문제는 로그캣에서 나옵니다. 널포인트익셉션이라면 위와 같을 것이고 아니라면 다른 방법을 찾으셔야죠.
 
먼저 로그를 확인하세요.
달기살 (12,990 포인트) 님이 2014년 6월 10일 답변
완전 초보로 한계에 매일매일 부딪치고 있는 사람입니다...
자세하게 설명 해주실 수 있는지요...
null 체크는 어떻게 하는 건지... 검색하면 나올까요...
로그 확인은 어떻게 하는 건지요...
if (cwifissid.equals(wifissid) && cwifissid!=null) 이런식으로 바꿔도 그대로네요...ㅠㅠ
거꾸로 체크하셨네요.
if (cwifissid!=null && cwifissid.equals(wifissid))
오~ 정말 감사합니다. 순서가 잘못되어있었네요
순서는 별의미가 없을거라 생각했는데 생각이 짧았네요
덕분에 잘 됩니다. 정말 고맙습니다.
...