이 앱은 인터넷 연결을 사용하지 않으면 작동하지 않아야합니다. 그러나 DroidWall
과 같은 방화벽 응용 프로그램이 인터넷에 대한 액세스를 거부 한 경우 (방화벽 규칙) ConnectivityManager
및 NetworkInfo
을 통한 인터넷 연결 확인은 작동하지 않습니다.방화벽이 일부 앱에 대한 인터넷 액세스를 차단했음을 감지하는 방법은 무엇입니까?
일부 방화벽 앱이 내 앱에 대한 인터넷 액세스를 차단 한 것을 어떻게 감지합니까?
예를 들어 Google Play 스토어 앱을 시작하면 '인터넷에 연결되지 않음'이라고 분명히 표시됩니다. 내 앱을 시작하면 멈추고 (콘텐츠 다운로드를 시도한 후) 오류가 발생하여 충돌이 발생합니다.
편집
이 로그 캣에 의해 체포 오류입니다. 보시다시피
12-05 12:44:51.417: E/AndroidRuntime(18922): java.lang.RuntimeException: An error occured while executing doInBackground()
12-05 12:44:51.417: E/AndroidRuntime(18922): at android.os.AsyncTask$3.done(AsyncTask.java:278)
12-05 12:44:51.417: E/AndroidRuntime(18922): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
12-05 12:44:51.417: E/AndroidRuntime(18922): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
12-05 12:44:51.417: E/AndroidRuntime(18922): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
12-05 12:44:51.417: E/AndroidRuntime(18922): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
12-05 12:44:51.417: E/AndroidRuntime(18922): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
12-05 12:44:51.417: E/AndroidRuntime(18922): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
12-05 12:44:51.417: E/AndroidRuntime(18922): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
12-05 12:44:51.417: E/AndroidRuntime(18922): at java.lang.Thread.run(Thread.java:856)
12-05 12:44:51.417: E/AndroidRuntime(18922): Caused by: java.lang.NullPointerException
12-05 12:44:51.417: E/AndroidRuntime(18922): at com.app.android.MainActivity$ParserAsyncTask.doInBackground(MainActivity.java:345)
12-05 12:44:51.417: E/AndroidRuntime(18922): at com.app.android.MainActivity$ParserAsyncTask.doInBackground(MainActivity.java:367)
12-05 12:44:51.417: E/AndroidRuntime(18922): at android.os.AsyncTask$2.call(AsyncTask.java:264)
12-05 12:44:51.417: E/AndroidRuntime(18922): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
12-05 12:44:51.417: E/AndroidRuntime(18922): ... 5 more
, 인터넷 연결 (와이파이 또는 모바일 데이터) 여부를 감지하는 메커니즘이 존재하거나 응용 프로그램이 시작된으로 실패하지 파서 원격 콘텐츠를 다운로드 시작했다.
일부 앱이 Play 스토어 앱처럼 일부 방화벽 규칙에 의해 차단되는지 여부를 확인하는 인터넷 연결 메커니즘을 허용하는 추가 기능을 구현해야합니다.
오류를 게시 할 수 있습니까? 전체 예외. – LonWolf
@LonWolf 해냈어. – sandalone
내가 아래에 제안한 것을 시도하십시오. 그리고 mainactivity.java 줄 345-> 367에서 NullPointerException을 던지는 코드를 추가합니다. 대부분의 경우 방화벽이 연결 변수를 null로 만들고이를 테스트하지 않습니다. 반환 된 내용을 확인하기 만하면 문제가 해결됩니다. – LonWolf