Android Smack 4.1文件传输,错误无法读取文件
这是我的演示代码 谁能帮我摆脱这个错误?我的代码(无法读取文件)IllegalArgumentException出现以下异常Android Smack 4.1文件传输,错误无法读取文件,android,Android,这是我的演示代码 谁能帮我摆脱这个错误?我的代码(无法读取文件)IllegalArgumentException出现以下异常 09-22 10:29:22.485 13759-13759/com.abc.xyz E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.abc.xyz, PID: 13759 java.lang.IllegalArgumentException: Could not read fil
09-22 10:29:22.485 13759-13759/com.abc.xyz E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.abc.xyz, PID: 13759
java.lang.IllegalArgumentException: Could not read file
at org.jivesoftware.smackx.filetransfer.OutgoingFileTransfer.sendFile(OutgoingFileTransfer.java:220)
at com.abc.xyz.FileTransferActivity.transferFile(FileTransferActivity.java:93)
at com.abc.xyz.FileTransferActivity.onClick(FileTransferActivity.java:77)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
这是密码
自Android 4.4以来,您无法直接访问SD卡中不在软件包目录内的任何文件。检查答案,这里它告诉您如何访问SD卡中的包文件以及如何创建这样的目录 一旦您创建了这些目录并将文件放入其中,您将能够毫无问题地访问您的文件 相反,如果您想访问SD卡中的任何文件,则有一个for 4.4+版本,它可能使您能够访问SD卡中的任何文件。但我不推荐
希望有帮助问题应该是您的文件不在给定路径中,或者您没有读取该文件的权限(是否在SD卡中?)是的,它在SD卡中,我已经检查过了。
private void transferFile(final String filePath) {
FileTransferManager fileTransferManager = FileTransferManager.getInstanceFor(MainActivity.Connection);
OutgoingFileTransfer transfer = fileTransferManager.createOutgoingFileTransfer("abc@blackberry-pc/developers");
try
{
transfer.sendFile(new File(filePath),"");
}
catch (SmackException e)
{
e.printStackTrace();
}
//RECEIVE FILES
fileTransferManager.addFileTransferListener(new FileTransferListener() {
@Override
public void fileTransferRequest(FileTransferRequest request) {
IncomingFileTransfer transfer = request.accept();
try {
transfer.recieveFile(new File(filePath));
} catch (SmackException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}