Project

General

Profile

Actions

Zadanie #2

open

Pobranie piosenek na androida z danego katalogu na ScyllaOne

Added by Dawid Szustak about 2 years ago. Updated about 2 years ago.

Status:
Nowy
Priority:
Normalny
Start date:
10/28/2023
Due date:
% Done:

0%

Estimated time:

Description

Chce z androida w Javie, połączyć się poprzez ssh z serwerem i pobrać wszystkie pliki z danego folderu do folderu Music na urzadzeniu.

Actions #1

Updated by Dawid Szustak about 2 years ago

Aby połączyć się przez SSH z serwerem i pobrać pliki z danego folderu na urządzenie Android w języku Java, musisz skorzystać z biblioteki do obsługi SSH oraz obsługi plików na Androidzie. Jednym z popularnych narzędzi do obsługi SSH w Javie jest JSch. Oto ogólny przewodnik, jak to zrobić:

1. Dodaj JSch do projektu:
Musisz dodać bibliotekę JSch do swojego projektu Android Studio. Możesz to zrobić, edytując plik `build.gradle` i dodając odpowiednią zależność.

dependencies {
    implementation 'com.jcraft:jsch:0.1.54'
}

2. Utwórz kod do łączenia się z serwerem SSH i pobierania plików. Oto przykład:


import com.jcraft.jsch.*;

public class SshFileDownloader {
    public void downloadFiles() {
        JSch jsch = new JSch();
        Session session = null;

        try {
            // Ustaw dane do połączenia z serwerem SSH
            String username = "twojaNazwaUzytkownika";
            String host = "adresSerweraSSH";
            int port = 22;
            String password = "twojeHaslo";

            session = jsch.getSession(username, host, port);
            session.setConfig("StrictHostKeyChecking", "no");
            session.setPassword(password);
            session.connect();

            // Utwórz kanał SFTP do transferu plików
            ChannelSftp channelSftp = (ChannelSftp) session.openChannel("sftp");
            channelSftp.connect();

            String remoteFolder = "/sciezka/do/twojego/folderu/na/serwerze";
            String localFolder = "/storage/emulated/0/Music/";

            // Pobierz pliki z serwera do lokalnego folderu
            channelSftp.cd(remoteFolder);
            Vector<ChannelSftp.LsEntry> fileList = channelSftp.ls(".");

            for (ChannelSftp.LsEntry file : fileList) {
                if (!file.getAttrs().isDir()) {
                    String remoteFileName = file.getFilename();
                    String localFileName = localFolder + remoteFileName;
                    channelSftp.get(remoteFileName, localFileName);
                }
            }

            channelSftp.disconnect();
        } catch (JSchException | SftpException e) {
            e.printStackTrace();
        } finally {
            if (session != null) {
                session.disconnect();
            }
        }
    }
}

Powyższy kod łączy się z serwerem SSH, przechodzi do określonego folderu na serwerze, pobiera pliki (nie-foldery) i zapisuje je w folderze "Music" na urządzeniu Android. Nie zapomnij dostosować danych uwierzytelniających i ścieżek dostępu do swoich potrzeb.

Actions #2

Updated by Dawid Szustak about 2 years ago

  • Assignee set to Dawid Szustak
Actions

Also available in: Atom PDF