2011-05-16 11 views
2

저는 Android에 익숙하지 않습니다. 다음 스 니펫을 제공하면 내 안드로이드 응용 프로그램이 충돌합니다.네트워크 정보를 가져 오는 동안 ConnectivityManager가 충돌합니다.

ConnectivityManager manager= (ConnectivityManager)this.getSystemService(Context.CONNECTIVITY_SERVICE); 
    manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); // Application is crashing in this line. 

또한 androidmanifest.xml에서 애플리케이션에 인터넷 권한을 부여했는지 확인했습니다. 어떤 도움도 내 추가 작업에 정말 유용 할 것입니다.

고마워요, 론 ..

+1

로그 예외를 추가 할 수 있습니까? 또한 코드 조각을 잡아서 스택 추적을 인쇄하여 유용하게 사용할 수 있습니다. – Dayerman

답변

8

나는 당신이하고 싶은 말 확실하지 오전하지만 인터넷 연결을 확인하려면 다음이 코드

/** 
    * THIS IS FUNCTION FOR CHECKING INTERNET CONNECTION 
    * @return TRUE IF INTERNET IS PRESENT ELSE RETURN FALSE 
    */ 
    public boolean checkInternetConnection() { 
     ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 

     NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo(); 
     return (activeNetworkInfo != null && activeNetworkInfo.isAvailable() && activeNetworkInfo.isConnected()); 
    } 

를 사용 해달라고 수 있습니다 잊어 버려

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> 
+0

모두에게 고마워. :) ACCESS_NETWORK_STATE 권한을 지정하지 않았습니다. 이제 모든 것이 잘 작동합니다. 그러나 이러한 모든 권한에 대해 아는 것은 좋은 참고 자료입니다. 문서에서 권한 관련 항목의 대부분을 찾지 못했습니까? – Ron

+0

ACCESS_NETWORK_STATE을 (를) 추가 했는데도 내 안드로이드 앱이 여전히 충돌하고 있습니다. wifi의 사용 가능 여부를 확인하고 싶습니다. (질문에서 코드를 사용하고 있습니다.) carsh에 대한 다른 가능한 설명은 "사용 권한 (프로세스 com.example.permissions)이 중지되었습니다. 예기치 않게 다시 시도하십시오. " –

0
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

<uses-permission android:name="android.permission.INTERNET" /> 
+0

아니요. ConnectivityManager에 ACCESS_FINE_LOCATION이 필요하지 않습니다. – Murphy

+0

적어도 getNetworkInfo() 목적으로는 인터넷이 아닙니다. –

관련 문제