Android アプリで次のコード スニペットを使用して、FTP 経由でファイルを転送しています。バイナリ ファイル モードが設定されたパッシブ モードを既に使用しています。現在、コードはそのままで、ファイル名は私の電話に存在するファイル用にハードコードされています。私は Wifi に接続し、上記のアドレスの FTP サーバーにファイルを転送したいと考えています。同じネットワーク上の別のマシンで動作するようにコードをテストしました。ADT-eclipse エミュレーターはこれに対して機能せず、Android 4.0 に更新された私の Xperia Ray ST18i は、接続時に有効なデバイスとして検出されません。commons-net-3.2.jar を ADT に正常にインポートし、携帯電話に .apk ファイルをコピーして、Wifi に接続しているときに確認しました。しかし、転送は機能していません。エミュレーターまたは電話でこれをデバッグするための指針を得ることができれば素晴らしいことです。ありがとう。
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.commons.net.ftp.FTPClient;
public class test
{
private static String server = "<valid-ip-address>";
private static String username = "<valid-user>";
private static String password = "password";
private static String fileLocation = "<valid-file>";
private static String fileName = "<valid-file>";
public static void main(String[] args) throws Exception {
FTPClient f = new FTPClient();
f.connect(server);
f.login(username, password);
f.enterLocalPassiveMode();
f.setFileType(FTPClient.BINARY_FILE_TYPE);
InputStream is = new FileInputStream(fileLocation);
f.storeFile(fileName, is);
f.disconnect();
is.close();
}
}