По какой-то причине я получаю java.io.IOException: listen failed: EINVAL (Invalid argument)
при попытке сохранить файл в папке загрузок Android publi c. В имени файла нет недопустимых символов:
private LocalSocket mServerSocketLocal;
public boolean openManagementInterface(@NonNull Context c) {
// Could take a while to open connection
int tries = 8;
String socketName = (Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + "/" + "mgmtsocket");
Log.d(TAG, socketName);
// The mServerSocketLocal is transferred to the LocalServerSocket, ignore warning
mServerSocketLocal = new LocalSocket();
while (tries > 0 && !mServerSocketLocal.isBound()) {
try {
mServerSocketLocal.bind(new LocalSocketAddress(socketName, LocalSocketAddress.Namespace.FILESYSTEM));
} catch (IOException e) {
// wait 300 ms before retrying
try {
Thread.sleep(300);
} catch (InterruptedException ignored) {
Log.d(TAG, String.valueOf(ignored));
}
}
tries--;
}
try {
mServerSocket = new LocalServerSocket(mServerSocketLocal.getFileDescriptor());
return true;
} catch (IOException e) {
Log.d(TAG, String.valueOf(e));
}
return false;
}
Вот результат моего Log.d(TAG, socketName)
:
2020-06-18 22:44:20.035 3049-3868/com.my.app D/myapp: /storage/emulated/0/Download/mgmtsocket
Насколько я понимаю, это ошибка, которая обычно возникает, когда есть недопустимые символы, но я не вижу недопустимые символы.