Ich möchte SFTP in meinem Android-Projekt verwenden. Verfügt Android bereits über eine SFTP-Bibliothek oder muss ich diese implementieren?Android STFP-Bibliothek
10
A
Antwort
5
Ich verwende andFTP für sftp Übertragungen, aber es ist nicht Open Source.
Sie können überprüfen connectBot. Es gibt ein Problem mit sftp transfers.
4
Ja, edtFTPj/PRO ist eine kommerzielle Java-Bibliothek, die auf Android funktioniert und SFTP (sowie FTP und FTPS) unterstützt.
0
Sie können jsch verwenden.
Gradle:
compile group: 'com.jcraft', name: 'jsch', version: '0.1.54'
Proguard (ich es behalte öffentliche und Warnungen ignoriert Einfache Lösung, Overkill ich wähle nicht mit ihm hier zu verwirren..). Wenn Sie die richtige Lösung kennen - lassen Sie es mich wissen.
-keep class com.jcraft.jsch.jce.*
-keep class * extends com.jcraft.jsch.KeyExchange
-keep class com.jcraft.jsch.**
-keep class com.jcraft.jzlib.**
-keep class com.jcraft.jsch.jce.*
-keep class com.jcraft.jzlib.ZStream
-keep class com.jcraft.jsch.Compression
-keep class org.ietf.jgss.*
-dontwarn org.ietf.jgss.**
-dontwarn com.jcraft.jsch.**
Code:
// add correct exception-handling; remember to close connection in all cases
public void doUpload(String host, String user, String password, String folder, int port, File file){
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
java.util.Properties config = new java.util.Properties();
//Don't do it on Production -- makes it MITM-vulnerable
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.setTimeout(5000);
session.setConfig("PreferredAuthentications", "password");
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp channelSftp = (ChannelSftp) channel;
String home = channelSftp.getHome();
if (folder == null || folder.length() == 0 || "/".equals(folder)) {
folder = home;
} else {
File file = new File(new File(home), folder);
folder = file.getPath();
}
channelSftp.cd(folder);
try (BufferedInputStream buffIn = new BufferedInputStream(new FileInputStream(file.getPath()))) {
ProgressInputStream progressInput = new ProgressInputStream(buffIn, progressListener, file.length());
channelSftp.put(progressInput, file.getName());
}
channelSftp.disconnect();
session.disconnect();
}
Verwandte Themen
- 1. android EditText android: textDirection
- 2. Android:
- 3. Android vs android-sdk-mac_86
- 4. Android Soft Tastaturabdeckungen Edittext android
- 5. Android Studio + Gradle + Android Anmerkungen
- 6. Android keywords - Rechtschreibprüfung - Android Studio
- 7. Android: Android kill tcpdump Prozess
- 8. android: layout_marginStart und android: layout_marginEnd
- 9. Ändern Android: Etikett - Android Studio
- 10. Android nicht auslösenden android: parentActivityName
- 11. Ich kann Android nicht android Android Studio 2.2
- 12. android: theme = "@ android: style/Theme.NoTitleBar.Fullscreen" Nicht funktioniert android
- 13. Android-Stil - Unterschied zwischen @style, Android :, @android: Stil, etc.
- 14. Android Wear und Android TV in Android Studio
- 15. Wie Android Android SDK-Quellen in Android-Studio 2.0
- 16. Unterschied zwischen Android: Breite und android: layout_width
- 17. Android Android SDK, Single Sign-on-Frage?
- 18. mit Android: Prozess = ": Remote" erstellt Android Anwendungsobjekt
- 19. Android 4.2 RadioButton Android: DrawableLeft Bug?
- 20. Oauth 2.0 Android verwenden Spring-For-Android
- 21. Unterschied zwischen Android: windowBackground und Android: colorBackground?
- 22. Android-Anmerkungen/Gradle/Android Studio Build-Probleme
- 23. Android L: Kompatibilität mit früheren Android-Versionen
- 24. Android Studio: wie Android-Bibliothek Projekt importieren
- 25. Android Eclipse vs Android Studio 2016
- 26. Android - proguard Fehler in Android Studio
- 27. Android - Was entspricht "android: theme =" in Java?
- 28. Wie Android-Anwendung mit Android Studio testen?
- 29. Android-Log-Abruf in meiner Android-Anwendung
- 30. Android manifest Fehler auf Android Studio 1.5.1
Hallo Macarse Thnk Sie Ihre Antwort. Ich ging durch SSH Open Source Client connectbolt auf Android. Jetzt möchte ich fragen, ob ich FTP und connectbolt SSH integrieren kann, um mein SFTP zu bilden ?? Wie viel machbar wäre es, wenn man bedenkt, dass ich nicht viel von SSH Interna weiß. Vielen Dank im Voraus. –
Ich denke, sie werden es hinzufügen, aber es ist noch nicht da. Veröffentlichen Sie einen Kommentar zu dem Problem und fragen Sie sie. – Macarse