1

I'm using this code:

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;
}

I get IOExcetion:

04-09 17:27:52.350: E/MjpegInputStream - IO(5749): java.net.SocketException: Permission denied Permission denied

My URL is http://192.168.1.113/videostream.cgi And when i connect with my browser the username and password is (admin, 1234)

What am i doing wrong ?

UPDATE:

I added INTERNET permissions and now my application crashes on this line:

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

with NetworkOnMainThreadException

Danpe
  • 18,668
  • 21
  • 96
  • 131
  • BTW the URL 192.168... is not accessible from the internet. http://en.wikipedia.org/wiki/Private_network – stacker Apr 09 '12 at 14:46

2 Answers2

1

It seems you forgot to add

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

to your manifest file.

See also Security and Permissions

stacker
  • 68,052
  • 28
  • 140
  • 210
  • Thanks! but now it just crashes with **NetworkOnMainThreadException** – Danpe Apr 09 '12 at 15:14
  • @Danpe See http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html this is another issue. Tip: It is almost always a good idea to google the exception. – stacker Apr 09 '12 at 17:01
1

Your NetworkOnMainThreadException error is caused by running a Network operation on the main UI thread. I am having a similar issue and have yet to figure out how to properly fix it, but I know you need to get MjpegInputStream into its own thread. A temporary solution is to allow the network operating to run on the UI thread but this is bad practice and should not be shipped:

//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
bbodenmiller
  • 3,101
  • 5
  • 34
  • 50