我已经从此站点下载了FTP客户端http://www.lysesoft.com/products/andftp/index.html的示例代码。
但是当我运行项目时,我遇到了这个异常并崩溃了。
03-27 21:40:44.572: INFO/System.out(559): EEE : No Activity found to handle Intent { act=android.intent.action.PICK dat=ftp://192.168.20.128 typ=vnd.android.cursor.dir/lysesoft.andftp.uri (has extras) }
这是什么原因呢?
谁能为我提供FTP的完整运行android代码。
这是下载代码。
Intent intent = new Intent();
intent.setAction(Intent.ACTION_PICK);
// FTP URL (Starts with ftp://, sftp://, ftps:// or scp:// followed by hostname and port).
Uri ftpUri = Uri.parse("ftp://192.168.20.128");
intent.setDataAndType(ftpUri, "vnd.android.cursor.dir/lysesoft.andftp.uri");
// Download
intent.putExtra("command_type", "download");
// FTP credentials (optional)
intent.putExtra("ftp_username", "anonymous");
intent.putExtra("ftp_password", "[email protected]");
//intent.putExtra("ftp_keyfile", "/sdcard/dsakey.txt");
//intent.putExtra("ftp_keypass", "optionalkeypassword");
// FTP settings (optional)
intent.putExtra("ftp_pasv", "true");
//intent.putExtra("ftp_resume", "true");
//intent.putExtra("ftp_encoding", "UTF-8");
//intent.putExtra("ftps_mode", "implicit");
// Activity title
intent.putExtra("progress_title", "Downloading files ...");
// Remote files to download.
intent.putExtra("remote_file1", "/remotefolder/subfolder/file1.zip");
intent.putExtra("remote_file2", "/remotefolder/subfolder/file2.zip");
// Target local folder where files will be downloaded.
intent.putExtra("local_folder", "/sdcard/localfolder");
intent.putExtra("close_ui", "true");
startActivityForResult(intent, DOWNLOAD_FILES_REQUEST);
我在“ startActivityForResult”时遇到错误
最佳答案
是的,您需要安装AndFTP才能使用FTP(除非您自己实现FTP功能)。
让我猜猜您做了什么:您认为通过实现在andFtp网站上找到的代码片段,您将能够在应用程序中使用FTP。
如果我猜对了,那么您将不完全了解Android的工作原理以及使用FTP所要做的事情。因此,andFTP所做的是注册提供了一些活动,这些活动可以由外部应用程序使用以使用FTP。但是,为了使其正常运行,必须安装andFTP应用程序。
这就是为什么出现ActivityNotFound
异常的原因。因此,这是您仅有的两个选择:
您可以自己实现所有FTP内容(而不必理会andFTP)
或者,您捕获到此类异常并向用户显示一条消息,告诉他们必须安装andFTP才能使您的应用正常运行。