在android 中开发java.net.SocketException: socket failed: EACCES (Permission denied) 报错

在android中下载文件,写好下载文件的代码后需要配置相应的权限

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

按原则来说这样就应该可以正常下载了,但是在android4.2 模拟器上运行(貌似4.0以上的模拟器都有这个问题) 获取流getInputStream时总是报错。百思不得其解,经百度得知添加一行代码即可,至于为什么还要再以后的学习中慢慢了解。

在这里先做个记录。

在.java文件中添加

  

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());

即可。

PS:刚从群里高手得知,是因为我联网的代码写在了主线程里,从android 4.0以后就不允许这样操作了,因为如果在主线程里联网,如果网络不好那么整个程序就卡死在那里了。所以android4.0以后对要联网的代码必须在新开一个线程来做。

时间: 2024-10-06 21:41:32

在android 中开发java.net.SocketException: socket failed: EACCES (Permission denied) 报错的相关文章

关于 java.io.IOException: open failed: EACCES (Permission denied)

今天解决了一个问题,不得不来和大家分享.就是关于 java.io.IOException: open failed: EACCES (Permission denied)的问题,网上也有很多人把这个问题解决了,那么我在这里再重复是不是就是多余的呢?未必哈. 在此,我针对的是,当你用以下这个方法解决不了的时候 在mainfest文件中,增加以下权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAG

java.io.IOException: open failed: EACCES (Permission denied)问题解决

1.  问题描述:在Android中,用程序访问Sdcard时,有时出现“java.io.IOException: open failed: EACCES (Permission denied)", 这是由于没有增加sdcard对应权限而导致的. 2.  解决办法: 在mainfest文件中,增加以下权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 问题解

Android 网络编程——socket failed: EACES (Permission denied)

当Android网络socket编程时出现如下错误: "socket failed: EACES (Permission denied)" 是因为建立的套接字没有权限对外连接. 解决: 在AndroidManifest.xml文件中,加上这么一句,取得权限 即:<uses-permission android:name="android.permission.INTERNET"/>

socket() failed (13: Permission denied) while connecting to upstream

/*************************************************************************** * socket() failed (13: Permission denied) while connecting to upstream * 说明: * 这个错误隐藏的挺深的,观察了许久,才从ps aux中的执行用户中找出来. * * 2016-9-26 深圳 南山平山村 曾剑锋 ******************************

android studio open failed: EACCES (Permission denied)(第一行代码第十章下载测试总是失败)

在学习android 下载的部分时,由于当前使用的android版本较高,总是出现访问权限问题---文件打开失败.通过科学地上网终于找到解决办法>> Add android:requestLegacyExternalStorage="true" to the Android Manifest It's worked with Android 10 (Q) at SDK 29+ or After migrating Android X. 在AndroidMainfest.xm

Android之EACCES (Permission denied)与Permission denied异常探密

话说,Accipiter君,最近又开始怒学Android了,记得刚开始还是09年学的,现在的手机还是华为出的最早的一款Android手机C8500,那时候就想好好学习Android,赚点小钱,可是~~~没有坚持学习!遗恨这么几年啊!所以现在从头学习Android确有一种考古探密的感觉啊!进入正题吧,今天就对Android中的一个经典的异常进行一次探密行吧.. 一.进入密室 嗯,一是我想从浩瀚的Internet抓点东西,二是我想给浩瀚的Internet提供点东西,自己搭个服务,如何让小伙伴们看到了

在Android程序中使用Modbus协议时报 java.net.SocketException: recvfrom failed: ECONNRESET解决办法

最近在开发基本Modbus协议的Android端PLC控制程序,C#版程序没有任何问题,移到JAVA下出现各种问题,其中比较苦恼的是java.net.SocketException: recvfrom failed: ECONNRESET错误. 开始我的解决方法是每次向PLC发送一条数据后关掉socket,但是这样做太极端了. 经过分析发现是由于发送的数据包大小我设定为256,当写入1个寄存器值时,Modbus服务端直接报错,关掉了socket连接,将发送的数据包大小改成实际的大小后解决问题.

java.net.SocketException: socket closed

在使用socket编程的时候,发现当使用完getInputStream方法后,再获取OutputStream就会报 java.net.SocketException: socket closed错误 看到JAVA api中写到 java.net.Socket.getInputStream方法: getInputStream public InputStream getInputStream()throws IOException 返回此套接字的输入流. 如果此套接字具有关联的通道,则所得的输入流

java的Socket通信例子及关于java.net.SocketException: Socket is closed错误

今天写socket数据相互通信的时候,碰到一个及其蛋疼的错误.单向传输数据的时候server与client是没有问题的,但是两个都有输入输出操作的时候就出现了这个问题 java.net.SocketException: Socket is closed: 下面附代码: Server: StringBuffer result = new StringBuffer(""); int port = 9090; //定义一个ServerSocket监听在端口9090上 ServerSocket