我使用android-xmpp开发群聊应用程序,因为我不知道如何发送和接收图片图像或位置(使用地图)。android如何使用xmpp-smack在群聊中发送和接收图像和位置(使用地图)
所以任何一个人都可以请给我这样做的方式。
目前,我得到的文本消息,并添加到列表视图,就像下面,
Message msg = new Message(to, Message.Type.groupchat);
msg.setBody(text);
if (Constants.connection != null) {
try {
Constants.connection.sendPacket(msg);
Log.d("Send to room : Name : ", to);
Log.d("store", "store data to db");
//DBAdapter.addUserData(new UserData(text, "", "1" ,beam_id));
} catch (Exception e) {
Log.d("ooo", "msg exception" + e.getMessage());
}
messages.add(text);
runOnUiThread(new Runnable() {
public void run() {
// set to listview
setMyChatAdapter();
}
});
}
,并使用StanzaTypeFilter接收。那么如何进行图片和位置分享?
我使用FileTransferManager尝试下面的代码,使用smack-extensions-4.1.3-sources.jar。
private void sendImage()
{
FileTransferManager mg=new FileTransferManager(Constants.connection);
OutgoingFileTransfer transfer = mg.createOutgoingFileTransfer(beam_id+"@"+Constants.conference_name + "/" + Constants.resources);
File file = new File(selectedImagePath);
try {
transfer.sendFile(file, "test_file");
} catch (Exception e) {
e.printStackTrace();
}
while(!transfer.isDone()) {
if(transfer.getStatus().equals(FileTransfer.Status.error)) {
System.out.println("ERROR!!! " + transfer.getError());
} else if (transfer.getStatus().equals(FileTransfer.Status.cancelled)
|| transfer.getStatus().equals(FileTransfer.Status.refused)) {
System.out.println("Cancelled!!! "+ transfer.getError());
}
try {
Thread.sleep(1000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if(transfer.getStatus().equals(FileTransfer.Status.refused) || transfer.getStatus().equals(FileTransfer.Status.error)
|| transfer.getStatus().equals(FileTransfer.Status.cancelled)){
System.out.println("refused cancelled error"+ transfer.getError());
} else {
System.out.println("Success");
}
}
但是,当我使用以下访问该文件,
FileTransferManager毫克=新FileTransferManager(Constants.connection);
它给我的错误......有一个私有访问...所以,我发现文件的构造函数是私有的,这是jar文件,所以我不能将其改为公开。
那么,我怎样才能访问我的课文件类?
那么,我如何在聊天中分享(发送 - 接收)图像和位置信息?
请尽快帮助我。
在此先感谢。
hello @ kiturk3我知道这段代码,但如何访问如果** FileTransferManager **有一个私人访问,我明确提到我的问题。 –
此界面已更改。您现在必须调用FileTransferManager.getInstance(Connection) –
我的文件不发送。 我得到System.out.println('拒绝取消错误'+ transfer.getError()); 你能告诉我应该是什么原因 – Rajat