2012-04-09 93 views
1

我使用这个代码权限拒绝错误:的Android连接到MJPEG流 -

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:

04-09 17:27:52.350:E/MjpegInputStream - IO(5749): java.net.SocketException异常:权限被拒绝权限被拒绝

我的网址是http://192.168.1.113/videostream.cgi当我与我的浏览器连接的用户名和密码(管理,)

我到底做错了什么?

UPDATE:

我加入INTERNET的权限,现在我的应用程序崩溃在这条线:

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

NetworkOnMainThreadException

+0

顺便说一句,URL 192.168 ...不能从互联网上访问。 http://en.wikipedia.org/wiki/Private_network – stacker 2012-04-09 14:46:07

+0

@stacker是的,我在一个局域网.. – Danpe 2012-04-09 15:55:29

回答

1

看来你忘了添加

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

给你清单文件。

Security and Permissions

+0

谢谢!但现在它只是崩溃** NetworkOnMainThreadException ** – Danpe 2012-04-09 15:14:25

+0

@Danpe请参阅http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html这是另一个问题。提示:谷歌例外几乎总是一个好主意。 – stacker 2012-04-09 17:01:57

1

NetworkOnMainThreadException错误造成见的主UI线程上运行的网络操作。我有一个类似的问题,还没有找出如何正确解决它,但我知道你需要让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 2012-05-11 19:03:03