【发布时间】:2014-03-07 15:30:56
【问题描述】:
这是我的代码:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_PICK);
// FTP URL (Starts with ftp://, sftp:// or ftps:// followed by hostname and port).
Uri ftpUri = Uri.parse("ftp://ftp.myserver.com:21");
intent.setDataAndType(ftpUri, "vnd.android.cursor.dir/lysesoft.andftp.uri");
// FTP credentials (optional)
intent.putExtra("ftp_username", "user");
intent.putExtra("ftp_password", "pass");
//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", "UTF8");
// Upload
intent.putExtra("command_type", "upload");
// Activity title
intent.putExtra("progress_title", "Uploading folder ...");
intent.putExtra("local_file1", "/sdcard/DCIM/try");
// Optional initial remote folder (it must exist before upload)
//intent.putExtra("remote_folder", "remotefolder/uploadedfolder");
startActivityForResult(intent, 2);
LogCat:
03-07 17:27:49.471: W/dalvikvm(13281): threadid=1: thread exiting with uncaught exception (group=0x415c87c0)
03-07 17:27:49.471: E/AndroidRuntime(13281): FATAL EXCEPTION: main
03-07 17:27:49.471: E/AndroidRuntime(13281): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.whatsappxr/com.example.whatsappxr.MainActivity}: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.PICK dat=ftp://ftp.attracto.tk:21 typ=vnd.android.cursor.dir/lysesoft.andftp.uri (has extras) }
03-07 17:27:49.471: E/AndroidRuntime(13281): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339)
03-07 17:27:49.471: E/AndroidRuntime(13281): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
03-07 17:27:49.471: E/AndroidRuntime(13281): at android.app.ActivityThread.access$600(ActivityThread.java:153)
03-07 17:27:49.471: E/AndroidRuntime(13281): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1269)
03-07 17:27:49.471: E/AndroidRuntime(13281): at android.os.Handler.dispatchMessage(Handler.java:99)
03-07 17:27:49.471: E/AndroidRuntime(13281): at android.os.Looper.loop(Looper.java:137)
03-07 17:27:49.471: E/AndroidRuntime(13281): at android.app.ActivityThread.main(ActivityThread.java:5289)
03-07 17:27:49.471: E/AndroidRuntime(13281): at java.lang.reflect.Method.invokeNative(Native Method)
03-07 17:27:49.471: E/AndroidRuntime(13281): at java.lang.reflect.Method.invoke(Method.java:525)
03-07 17:27:49.471: E/AndroidRuntime(13281): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
03-07 17:27:49.471: E/AndroidRuntime(13281): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
03-07 17:27:49.471: E/AndroidRuntime(13281): at dalvik.system.NativeStart.main(Native Method)
03-07 17:27:49.471: E/AndroidRuntime(13281): Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.PICK dat=ftp://ftp.attracto.tk:21 typ=vnd.android.cursor.dir/lysesoft.andftp.uri (has extras) }
03-07 17:27:49.471: E/AndroidRuntime(13281): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1632)
03-07 17:27:49.471: E/AndroidRuntime(13281): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)
03-07 17:27:49.471: E/AndroidRuntime(13281): at android.app.Activity.startActivityForResult(Activity.java:3390)
03-07 17:27:49.471: E/AndroidRuntime(13281): at android.app.Activity.startActivityForResult(Activity.java:3351)
03-07 17:27:49.471: E/AndroidRuntime(13281): at com.example.whatsappxr.MainActivity.onCreate(MainActivity.java:37)
03-07 17:27:49.471: E/AndroidRuntime(13281): at android.app.Activity.performCreate(Activity.java:5133)
03-07 17:27:49.471: E/AndroidRuntime(13281): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-07 17:27:49.471: E/AndroidRuntime(13281): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2293)
03-07 17:27:49.471: E/AndroidRuntime(13281): ... 11 more
我应该怎么做才能让它工作?
【问题讨论】:
-
好想你删除了用户名和密码 :)
-
应用程序正在崩溃,因为没有内置方式(在 Android 操作系统中)来处理 ftp:// URL。您将不得不构建自己的活动,使用 ftp 上传文件。
-
为此使用 Java 标准 FTP 方法。
标签: java android android-intent ftp request