Android studio ftp пример

How to start FTP in Android

To download the code, login with one of the following social providers.

Login Login

Be patient. we are fetching your source code.

Objective

What is FTP ?

File Transfer Protocol (FTP) is a standard network protocol used to transfer files from one host to another host over a TCP-based network, such as the Internet. FTP is built on a client-server architecture and uses separate control and data connections between the client and the server. FTP users may authenticate themselves using a clear-text sign-in protocol, normally in the form of a username and password, but can connect anonymously if the server is configured to allow it.

For secure transmission that hides (encrypts) the username and password, and encrypts the content, FTP is often secured with SSL/TLS («FTPS»). SSH File Transfer Protocol («SFTP») is sometimes also used instead, but is technologically different.

Following are the steps to start FTP in Android device:

Step 1 Download Required .jar files.

First you need following JAR file:

1. commons-net-3.3.jar

Download latest jar file and add into libs folder of your Android project.

Step 2 MyFTPClientFunctions class

Create new class MyFTPClientFunctions into your project. Now add some FTP functions into newly created class.

  • public FTPClient mFTPClient = null; // Add top of the class

Now add method to connect FTP server. (Method to connect to FTP server)

Now add method to disconnect FTP server. (Method to disconnect from FTP server)

Now add method to upload file on FTP server.

More methods are in full demo project.

Step 3 Call FTP Functions

Calling of above FTP functions. Create new class which extend Activity.

Add following into your class:

Now add following into onCreate:

For start FTP connection:

Every FTP connection call in new Thread

For terminate FTP connection:

If you have got any query related handling FTP in Android comment them below. Other FTP functions are in full demo project.

Got an Idea of Android App Development? What are you still waiting for? Contact us now and see the Idea live soon. Our company has been named as one of the best Android App Development Company in India.

Tejas Jasani

An entrepreneur who has founded 2 flourishing software firms in 7 years, Tejas is keen to understand everything about gaming — from the business dynamics to awesome designs to gamer psychology. As the founder-CEO of a company that has released some very successful games, he knows a thing or two about gaming. He shares his knowledge through blogs and talks that he gets invited to.

Источник

Android Programming

Monday, December 31, 2012

Creating Android FTP client | FTP operations

Many programmers have the following questions in mind.
«How do I do FTP operations from my android app?»
«How can I write a simple FTP client?»
«I want to store my application data in a FTP link at runtime. How can I do it?»
«How to upload images from my Android app to an FTP server/host ?»

There are many FTP client apps available for Android. But that’s not an in-app solution.

What I’m going to describe here is a very simple way to build an ftp client inbuilt into your app.
With this you would be able to download a file from ftp host / upload file to a ftp host etc.

Читайте также:  Панорамные обои для андроида

1. You would need an ftp implementation. I use a library from apache commons project.
Copy org.apache.commons.net_2.0.0.v200905272248.jar file to the libs/ folder of your android app code

2. You would need an ftp host and an account to access it. I use drivehq.com.
drivehq.com provies 1 GB of free ftp space. All my sample codes are uploaded to the same ftp host.
Once you have an account you would have an UID & PW to access the host.
In the sample apps, I have mentioned it as FTP_UID and FTP_PW. Replace these with the actual uid&pw

3. Add permission to your Android manifest

Note: Do all the ftp operations on a separate thread. Do not block the UI thread.
All the following operations use the FTPClient class which is defined in the jar file.
The sample implementation can be found in my sample code: MyFTPClient.java
import import org.apache.commons.net.ftp.*;

Connecting to a FTP host

Disconnecting from a ftp host

Retrieving current FTP directory

Change the ftp directory path

Download a file from ftp host

Upload a file to an ftp host

Print files in list

Create a directory in ftp host

Remove a directory in ftp host

Remove a file in ftp host

Rename a file in ftp host

38 comments:

//Error: could not connect to host ftp.drivehq.com

Are you ale to connect to ftp.drivehq.com on the browser?

And where are you seeing this error?

I am not able to connect to ftp.drivehq.com and the error is shown in Eclipse Logcat. Please help.

Add Permision for Internet

This comment has been removed by the author.

This comment has been removed by the author.

salam syed kamal i need ur help can u help me plz

Hello;
I use the same code, but my probleme is that I can Upload and remove but I can’t download.

I tried to run Ftptest on Eclipse. However, «Login to ftp», «Upload file to ftp» and «Disconnect from ftp» did not work, just «Exit» was done. Can you help me.

Hi bess i m also doing the same code can u share ur id?

Hi, can someone upload complete ADT Eclipse Project Format.
Because its not running on my PC
Thanks

MANO whats your ID.

mahil post your id

Can anyone help how to count stream bytes while uploading and downloading a file. I have done my else coding, I will be grateful for your kind opinion.
Feel free to ask me for help in android
email ID: skystar.h8@gmail.com

I tried to run Ftptest on Eclipse. However, «Login to ftp», «Upload file to ftp» and «Disconnect from ftp» did not work, just «Exit» was done. Can you help me.

How to calculate progress while uploading and downloading, I am developing android FTP Client. Share your knowledge

hello syed kamal. i need ur help regarding android in my project..it includes obex ftp.

mahil143@yahoo.com
this is my ID MANO
please email me and contact me

syed kamal i need your help, please help in my project, i am unable to build this ftp project, my id is ameensvet@yahoo.com, or please give me your id.
thanks

very good work. Thank u)
But in my Eclipse your project show me many mistakes)
Can you help to solve this problem?
My mail once2go@ukr.net///\\\
i suppose you find a minutes for it)
with best regards, Denys Karpov

Hello Syed,
I am not able to connect to ftp server even same server is getting opened in browser.

I have add «INTERNET» permission in manifest file also.

The logcat displays below exception:

Читайте также:  Моби дик для андроид

07-03 16:15:18.182: W/System.err(13827): java.net.UnknownHostException: Unable to resolve host «»: No address associated with hostname
07-03 16:15:18.182: W/System.err(13827): at java.net.InetAddress.lookupHostByName(InetAddress.java:424)
07-03 16:15:18.182: W/System.err(13827): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
07-03 16:15:18.193: W/System.err(13827): at java.net.InetAddress.getByName(InetAddress.java:289)
07-03 16:15:18.193: W/System.err(13827): at org.apache.commons.net.SocketClient.connect(SocketClient.java:189)
07-03 16:15:18.193: W/System.err(13827): at org.apache.commons.net.SocketClient.connect(SocketClient.java:278)
07-03 16:15:18.193: W/System.err(13827): at com.kova.callmergeappinstaller.SendFiles$1.run(SendFiles.java:36)
07-03 16:15:18.193: W/System.err(13827): Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname)
07-03 16:15:18.193: W/System.err(13827): at libcore.io.Posix.getaddrinfo(Native Method)
07-03 16:15:18.193: W/System.err(13827): at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:59)
07-03 16:15:18.193: W/System.err(13827): at java.net.InetAddress.lookupHostByName(InetAddress.java:405)
07-03 16:15:18.193: W/System.err(13827): . 5 more

I tried to run Ftptest on Eclipse. However, «Login to ftp», «Upload file to ftp» and «Disconnect from ftp» did not work, just «Exit» was done. Can you help me.

Unfortunately, FtpTest has stoped

Sed kamal am facing this error when i press connect button of TestFtp

Please help me
please

i am student of MIT and my last semester goes to end after some days i have submit my project «SMART PHONE FTP CLIENT» and i have no idea about it
Please any one help me

I tried to run Ftptest on Eclipse. However, «Login to ftp», «Upload file to ftp» and «Disconnect from ftp» did not work, just «Exit» was done. Can you help me.

Источник

Написание программы для простейшей синхронизации файлов по FTP для Android с помощью SL4A + Python

Введение

В данной статье рассматривается процесс написания программ при помощи SL4A на примере программы для синхронизации файлов по протоколу FTP на языке Python в операционной системе Ubuntu. Показаны настройка операционной системы для разработки SL4A-приложений, написание самого приложения, распространение приложения с помощью баркодов и упаковка приложения в .apk-файл.

Немного слов о том, что такое SL4A и с чем его едят

Проект SL4A (Scripting Layer for Android), появившийся на свет благодаря Деймону Кохлеру (Damon Kohler) и предоставляемыми Google’ом 20% свободного рабочего времени, дает возможность программировать под платформу Android на различных интерпретируемых языках программирования (на данный момент это Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl и Shell).
На хабре уже писалось про SL4A. Например, здесь рассказывалось о том, как написать приложение на Python для проверки кармы на хабре, а здесь с помощью Lua создавался скрипт, отключающий коммуникации телефона на ночь.

SL4A хорошо подходит для обучения программированию, для написания прототипов программ, для решения задач автоматизации действий на платформе Android. Большие серьёзные программы на SL4A не пишутся, но для создания мини-программ он подходит хорошо. Проверить карму на хабре, отправить смс жене, чтобы попросить начать разогревать ужин за пару километров до дома; разбудить в электричке при приближении к нужной станции или даже управлять настоящей ракетой — все это может быть реализовано при помощи SL4A c минимальным количеством кода и затраченного времени.

Для сравнения ниже показана простейшая программа на языке Java и Python (примеры взяты из из презентации PyCon 2011):

Та же программа на языке Python займет всего 4 (!) строки:

Разница, как говорится, налицо. Конечно, не обойтись без недостатков. О них в конце статьи.

Основная часть

Установка SL4A на телефон

Непосредственно в приложении SL4A имеется только интерпретатор Shell. Для использования других языков программирования необходимо устанавливать дополнительные приложения. Интерпретатор языка Python находится здесь.

Настройка операционной системы для работы с SL4A

Для работы приложения синхронизации файлов на компьютере должен быть установлен ftp-сервер. Для Ubuntu есть приложение vsftpd, представляющее собой бесплатный и простой в настройке ftp-сервер. Для установки достаточно в терминале ввести команду:
sudo apt-get install vsftpd
Файл настроек сервера расположен в /etc/vsftpd.conf, в нем необходимо добавить разрешение на запись файлов, раскомментировав строчку
#write_enable=YES
И перезапустить сервер:
$sudo service vsftpd restart

Приложения SL4A можно создавать непосредственно на телефоне, но занятие набора кода на виртуальной клавиатуре крайне утомительно даже для небольших приложений, намного удобнее писать приложения на компьютере и потом закачивать их в телефон.
Для запуска приложений SL4A, написанных на компьютере, небходимо сначала запустить на телефоне SL4A-сервер (на главной странице SL4A-приложения нажать Menu — Interpreters — Menu — Start Server). Запускать будем приватный сервер. Появится уведомление, что сервер запущен, и там же будет написано, какой порт использует сервер.

Читайте также:  Как сделать скриншот с андроида леново

Комментарий: Существует возможность выбора запуска публичного сервера. При запуске публичного сервера любой, кто будет иметь доступ к вашему IP-адресу, сможет контролировать ваш телефон. При запуске приватного сервера и установке переменных окружения так, как будет показано ниже, скрипты, запускаемые на компьютере, будут работать без изменений и на телефоне. Для работы приватного сервера необходимо, чтобы Android SDK был установлен.

Перенаправим весь локальный трафик, поступающий на порт 9999 в Android-устройство (примем, что сервер слушает порт 46136):
$ adb forward tcp:9999 tcp:46136
Осталось создать переменную окружения и настройка закончена:
$ AP_PORT=9999
Осталось добавить файл android.py в папку с библиотеками Python’а, и все, теперь можно писать приложения на компьютере, запускать их, и результат можно буждет видеть сразу на телефоне. Для запуска helloWorld на Android-устройстве теперь достаточно ввести в интерпретаторе Python:

В первой строчке импортируется библиотека android, затем создается объект droid, с помощью которого используются API Android’a. Крайняя строка выводит сообщение «Hello, World!» на экран устройства.
Теперь самое время, чтобы познакомиться поближе с API, которое предоставляет SL4A.

Исходный код программы

Программа синхронизирует файлы в выбранных папках на Android-устройстве и компьютере в фоновом режиме. Проверка появления новых файлов происходит каждые 30 секунд. Большая часть программы практически не отличается от приложения для персонального компьютера с аналогичной функциональностью. Для наглядности когда обработка исключений опущена.

С помощью уже известного droid.makeToast() на экран Android-устройства выводятся сообщения о ходе синхронизации.

Запуск приложения

/.bashrc нужно добавить строку:
alias andrun=’adb shell am start -a com.googlecode.android_scripting.action.LAUNCH_FOREGROUND_SCRIPT -n com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher -e com.googlecode.android_scripting.extra.SCRIPT_PATH’
Тогда сам скрипт можно будет запустить командой
andrun /mnt/sdcard/sl4a/scripts/ftp_sync.py

Распространение приложения
Распространение приложения с помощью barcode

Для установки скрипта в Android устройство достаточно запустить SL4A-приложение, нажать menu — add — scan barcode.

Упаковка приложения в .apk-файл

Скрипты SL4A можно также упаковывать в обычные .apk-файлы. Для этого нужно скачать файл шаблона SL4A-проекта и импортировать его в eclipse. По непонятным причинам в проекте изначально отсутствует папка gen. Ее нужно создать вручную в корневом каталоге проекта. После этого в Windows — Preferences — Java — Build Path — Class Variables создаем переменную ANDROID_SDK, указывающую на папку, в которую был установлен Android SDK.

Далее в папке res/raw заменяем содержимое script.py содержимым нашей программы. Затем в меню нажимаем Project-Build, и если все прошло нормально, мы готовы к сборке приложения в .apk-файл. Идем в File — Export, выбираем Android — Export Android Application, далее выбираем наш проект.

Каждое Android-приложение должно быть подписано цифровой подписью. Если она не создавалась ранее, ее необходимо создать с помощью диалогового окна. Последнее диалоговое окно спросит, куда сохранить созданный .apk-файл. Устанавливаем приложение на телефон:
$ adb install ftp_sync.apk

Переименовать скрипт можно выделив в каталоге src com.dummy.fooforandroid и в меню Refactor нажав Rename. Имя должно содержать по крайней мере две точки. После этого необходимо изменить имя приложения в AndroidManifest.xml. Иконки приложения находятся в res/drawable. При желании их тоже можно изменить.
GUI-интерфейс для SL4A создается с помощью HTML-разметки и webView. Здесь показан пример создания такого интерфейса.

Заключение

Создание приложений с помощью SL4A для людей, не знакомых с Java и мобильной разработкой под Android, не представляет особой сложности. Платформа Android замечательна своей открытостью и доступностью. В том числе и для программирования под нее. SL4A привносит новый уровень доступности разработки Android-приложений, делая возможным использование различных языков программирования.

Источник

Оцените статью