我正在尝试使用Alljoyn框架传输文件,Alljoyn给出的示例向我展示了如何发送和接收通过在fileExplorer的ListView上一键选择的一个文件。 问题是我想传输几个选定的文件,例如4 张照片,一次。
在 onActivityResult() 中,当 case OFFER_SELECTED_FILE:i 修改如下:
case OFFER_SELECTED_FILE: {
final String[] peers = ajManager.getPeers();
//create the click listener - when a peer is selected, offer them the file
DialogInterface.OnClickListener onPeerClicked = new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
String peer = peers[which];
//File file = (File) intent.getExtras().get("file");
File selected = (File) intent.getExtras().get("file");
ArrayList<String> filePath = new ArrayList<String>();
filePath.add(selected.getAbsolutePath());
//ftComponent.offerFileToPeer(peer, file.getAbsolutePath(), 1000);
ftComponent.offerFileToPeer(peer, filePath, 1000);
}
};
showPeerPickerDialog(onPeerClicked);
break;
}
但它被公共(public)类 FileTransferComponent 拒绝,无法修改。
public int offerFileToPeer(String peer, String filePath, int timeoutMSecs) {
return offerManager.offerFile(peer, filePath, timeoutMSecs);
}
我引用了*文件传输模块使用指南 Android*4.1.1基本文件传输流程如下:
发送方
ftComponent.announce(filePaths);
接收端
ArrayList<FileDescriptor> availableFiles = ftComponent.getAvailableRemoteFiles();
FileDescriptor selected = availableFiles.get(0);
ftComponent.requestFile(selected.owner, selected.fileId, selected.filename);
帮助,任何建议将不胜感激。我对 alljoyn 很陌生。 如果可能的话,请告诉我如何做接收器和发送器双方。thx
最佳答案
嗯,几天前我得到了解决方案,如下:
//ready the selected the files's path list
File selected = (File) intent.getExtras().get("file");
filePaths = new ArrayList<String>();
filePaths.add(selected.getAbsolutePath());
//in the offer event
private FileTransferComponent ftComponent;
for (String path : filePaths) {
ftComponent.offerFileToPeer(peer, path, 1000);//the sample's original statement
}
Alljoyn 示例显示我传输一个文件,因此我们只需要使用 for(a:a_list){...} 之类的东西来处理它。Alljoyn 将处理其余的事情。
ps.我对那些只说大话却没有建议输出的人感到头疼。如果你太骄傲而无法回答某些问题,请不要在这里浪费时间。谢谢。
关于android - 如何使用alljoyn传输一次选择的多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27074814/