2012-04-09 2 views
1

권한 거부 오류 :안드로이드는 MJPEG 스트림에 연결 -이 코드를 사용하고

04-09 17 : 27 : 52.350 : E/MjpegInputStream

public static MjpegInputStream read(String url) { 
    HttpResponse res; 
    DefaultHttpClient httpclient = new DefaultHttpClient(); 
    httpclient.getCredentialsProvider().setCredentials(
      new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), 
      new UsernamePasswordCredentials("admin", "1234")); 
    try { 
     res = httpclient.execute(new HttpGet(URI.create(url))); 
     return new MjpegInputStream(res.getEntity().getContent());    
    } catch (ClientProtocolException e) { Log.e("MjpegInputStream - CP", e.getMessage()); } 
    catch (IllegalArgumentException e) { Log.e("MjpegInputStream - IA", e.getMessage()); } 
    catch (IOException e) { Log.e("MjpegInputStream - IO", e.toString() + " " + e.getMessage()); } 
    return null; 
} 

을 내가 IOExcetion 수 - IO (5749) : java.net.SocketException의 : 권한이 거부 권한이

을 거부 내 URL은 입니다 http://192.168.1.113/videostream.cgi 그리고 난 내 브라우저에서 사용자 이름을 연결하고 암호 (관리자, 1234) 때 내가 잘못

을 뭐하는 거지?

UPDATE : NetworkOnMainThreadException

res = httpclient.execute(new HttpGet(URI.create(url))); 

+0

BTW URL 192.168 ...은 인터넷에서 액세스 할 수 없습니다. http://en.wikipedia.org/wiki/Private_network – stacker

+0

@stacker 예, 제가 길에 있습니다. – Danpe

답변

1

당신이

<uses-permission android:name="android.permission.INTERNET"/> 
를 추가하는 것을 잊었다 보인다 :이 줄에 인터넷 권한과 지금 내 응용 프로그램 충돌을 추가

님에게 매니페스트 파일.

메인 UI 스레드에서 네트워크 작업을 실행하여도 Security and Permissions

+0

고마워요! 하지만 이제는 ** NetworkOnMainThreadException **으로 충돌합니다. – Danpe

+0

@ Danpe http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html 참조. 이것은 다른 문제입니다. 팁 : Google에 예외를 두는 것은 거의 항상 좋은 생각입니다. – stacker

1

귀하의 NetworkOnMainThreadException 오류가 발생을 참조하십시오. 비슷한 문제가 있는데 제대로 수정하는 방법을 아직 알지 못했지만 MjpegInputStream을 자체 스레드로 가져와야한다는 것을 알고 있습니다. 임시 해결책은 네트워크가 UI 스레드에서 작동하도록 허용하는 것이지만 이것은 나쁜 습관이므로 배송해서는 안됩니다.

//DO NOT LEAVE THIS IN PUBLISHED CODE: http://stackoverflow.com/a/9984437/1233435 
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder() 
.permitAll() 
.build(); 
StrictMode.setThreadPolicy(policy); 
//END of DO NOT LEAVE THIS IN PUBLISHED CODE 
+0

내 솔루션 참조 http://stackoverflow.com/questions/10550139/android-ics-and-mjpeg-using-asynctask – bbodenmiller