无法使用xmpp本地服务器从android客户端发送ans接收消息?

无法使用xmpp本地服务器从android客户端发送ans接收消息?,android,xmpp,xmppframework,Android,Xmpp,Xmppframework,我想为本地服务器连接构建XMPP android客户端,该客户端将能够随实时视频聊天一起发送文本。所以最初我尝试制作一个简单的聊天应用程序。使用此应用程序,我可以看到所有可用的用户,但当我尝试发送消息时,它无法到达服务器或其他客户端。谁能帮我找出问题出在哪里 聊天活动: public class ChatActivity extends Activity { private static final int REQUEST_CODE_FOR_GALLERY = 1; private stati

我想为本地服务器连接构建XMPP android客户端,该客户端将能够随实时视频聊天一起发送文本。所以最初我尝试制作一个简单的聊天应用程序。使用此应用程序,我可以看到所有可用的用户,但当我尝试发送消息时,它无法到达服务器或其他客户端。谁能帮我找出问题出在哪里

聊天活动:

public class ChatActivity extends Activity {

private static final int REQUEST_CODE_FOR_GALLERY = 1;
private static final int REQUEST_CODE_FOR_FILEMANAGER = 2;
private static String LOG_TAG = "- Chat Activity -";
private Context context;

private ListView chatListView;
private Button attatchmentButton;
private Button sendButton;
private EditText chatMessageEditText;

private ArrayList<ChatEntry> chatEntries;
private ChatAdapter chatAdapter;

private String fJID, fNickName;
private String mJID, mNickName;
private byte[] fAvatarByte, mAvatarByte;
private Bitmap fAvatarBitmap, mAvatarBitmap;

private XMPPConnection xmppConnection;
private FileTransferManager receiveFileManager;
private FileTransferManager sendFileManager;
private FileTransferListener listener;
private File externalStorageDirectory;
private String fileSrc; 

private Handler sHandler, rHandler;
private Thread sThread; 
private File rfile;

private LinearLayout layoutReceivingFile;
private LinearLayout layoutSendinfFile;
private ProgressBar rProgressBar;
private ProgressBar sProgressBar;

private ChatManager chatManager;
private Chat chat;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_chat);

    // Context
    context = this;

    // View matching
    chatListView = (ListView) findViewById(R.id.chat_message_listview);
    attatchmentButton = (Button) findViewById(R.id.chat_attatchment_button);
    sendButton = (Button) findViewById(R.id.chat_send_button);
    chatMessageEditText = (EditText) findViewById(R.id.chat_message_edit_text);
    layoutReceivingFile = (LinearLayout) findViewById(R.id.chat_file_transfer_receive_layout);
    layoutSendinfFile = (LinearLayout) findViewById(R.id.chat_file_transfer_send_layout);
    rProgressBar = (ProgressBar) findViewById(R.id.chat_receive_file_progress_bar);
    sProgressBar = (ProgressBar) findViewById(R.id.chat_send_file_progress_bar);

    // Event for attachment button
    attatchmentButton.setOnClickListener(new OnClickListener() {
        public void onClick(View view) {
            AlertDialog.Builder builder = new AlertDialog.Builder(context);
            builder.setTitle("File attachment");
            builder.setMessage("Choose your file type.");
            builder.setNegativeButton("Picture", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
                    photoPickerIntent.setType("image/*");
                    startActivityForResult(photoPickerIntent, REQUEST_CODE_FOR_GALLERY);
                }
            });
            builder.setPositiveButton("File", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    Intent intent = new Intent(ChatActivity.this, FilePickerActivity.class);

                    ArrayList<String> extensions = new ArrayList<String>();
                    extensions.add(".png");
                    extensions.add(".jpg");
                    extensions.add(".gif");
                    extensions.add(".tif");
                    extensions.add(".bmp");

                    extensions.add(".doc");
                    extensions.add(".docx");
                    extensions.add(".ppt");
                    extensions.add(".pptx");
                    extensions.add(".xls");
                    extensions.add(".xlsx");
                    extensions.add(".pdf");                     

                    extensions.add(".zip");
                    extensions.add(".rar");                     
                    intent.putExtra(FilePickerActivity.EXTRA_ACCEPTED_FILE_EXTENSIONS, extensions);

                    startActivityForResult(intent, REQUEST_CODE_FOR_FILEMANAGER);                       
                }
            });
            builder.setCancelable(true);

            AlertDialog alertDialog = builder.create();
            alertDialog.show();
        }
    });

    // Event for send message button
    sendButton.setOnClickListener(new OnClickListener() {
        public void onClick(View view) {
            String message = chatMessageEditText.getText().toString();
            if ( message.trim().length() == 0 ) {
                Toast.makeText(context, "Please fill up some text.", Toast.LENGTH_SHORT).show();
            } else {                    
                try {




                    chat.sendMessage(message);
                    chatMessageEditText.setText(null);
                    Log.d(LOG_TAG, "Trying to send message 1");
                    Toast.makeText(context, "trying to send" +message.toString(), Toast.LENGTH_LONG).show();


                    ChatEntry chatEntry = new ChatEntry();
                    chatEntry.setAttachedFile(false);
                    chatEntry.setFilePath(null);
                    chatEntry.setSenderJID(mJID);
                    chatEntry.setReceiverJID(fJID);
                    chatEntry.setSenderAvatarBitmap(mAvatarBitmap);
                    chatEntry.setWhen(System.currentTimeMillis());
                    chatEntry.setMessage(message);
                    Log.d(LOG_TAG, "Trying to send message 2");

                    chatEntries.add(chatEntry);
                    chatAdapter.setData(chatEntries);
                    chatAdapter.notifyDataSetChanged();
                    chatListView.setSelection(chatEntries.size()-1);
                    Log.d(LOG_TAG, "Trying to send message 3");
                } catch (XMPPException e) {
                    Log.e(LOG_TAG, "Unable to send message: "+e.getMessage());
                }
            }
        }
    });     

    // Event for chat list view
    chatListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long which) {
            if ( chatEntries.get(position).isAttachedFile() ) {
                File file = new File(chatEntries.get(position).getFilePath());

                if ( isImageFile(file) ) {
                    Intent intent = new Intent();
                    intent.setAction(android.content.Intent.ACTION_VIEW);    
                    intent.setDataAndType(Uri.fromFile(file), "image/*");  
                    startActivity(intent);      
                } else {
                    Intent intent = new Intent(Intent.ACTION_VIEW);
                    intent.setData(Uri.fromFile(file));
                    startActivity(intent);                      
                }
            }
        }
    });

    // Extras
    Bundle bundle = getIntent().getExtras();
    if ( bundle == null ) {
        ChatActivity.this.finish();
    } else {
        // Get active connection
        xmppConnection = MainActivity.getXMPPConnection();
        if ( xmppConnection == null ) {
            ChatActivity.this.finish();
        } else {
            // For BEEM
            FileTransferNegotiator.IBB_ONLY = true;
            // -- END OF FOR BEEM

            // Enable Server Discovery Manager
            ServiceDiscoveryManager sdm = new ServiceDiscoveryManager(xmppConnection);
            // sdm.addFeature("http://jabber.org/protocol/ibb");

            // FOR BEEM
            sdm.addFeature("http://jabber.org/protocol/disco#info");
            sdm.addFeature("http://jabber.org/protocol/disco#item");
            sdm.addFeature("jabber:iq:privacy");                
            // -- END OF FOR BEEM 

            // Receive data from extras
            fJID = bundle.getString("fJID");
            fJID += "/"+ApplicationSetting.SERVER_RESOURCE;



            fNickName = bundle.getString("fNickName");
            fAvatarByte = bundle.getByteArray("fAvatarByte");
            fAvatarBitmap = BitmapUtility.convertByteArrayToBitmap(fAvatarByte);

            mJID = bundle.getString("mJID");
            mNickName = bundle.getString("mNickName");
            mAvatarByte = bundle.getByteArray("mAvatarByte");
            mAvatarBitmap = BitmapUtility.convertByteArrayToBitmap(mAvatarByte);

            Toast.makeText(context, "fjid is  "+fJID + "mjid is  "+mJID, Toast.LENGTH_LONG).show();

            // Initialize
            chatMessageEditText.setSingleLine(true);
            chatEntries = new ArrayList<ChatEntry>();
            chatAdapter = new ChatAdapter(context, chatEntries, mJID);
            chatListView.setAdapter(chatAdapter);
            chatListView.setDivider(null);
            fileSrc = null;
            rProgressBar.setMax(100);
            sProgressBar.setMax(100);
            sProgressBar.setClickable(false);
            rProgressBar.setClickable(false);
            layoutReceivingFile.setVisibility(View.GONE);
            layoutSendinfFile.setVisibility(View.GONE);             

            // Set title for this activity
            setTitle("Chat with "+fNickName);
            Log.i(LOG_TAG, mNickName+" chat with "+fNickName);

            // Create Chat Manager
            chatManager = xmppConnection.getChatManager();



            // Add Chat Listener
            chatManager.addChatListener(new ChatManagerListener() {
                public void chatCreated(Chat chat, boolean isCreated) {
                    Toast.makeText(context, "Chat was created.", Toast.LENGTH_LONG).show();

                    Log.i(LOG_TAG, "Chat was created.");
                }
            });

            // Create chat channel with friend
            final Handler chatHandler = new Handler() {
                @Override
                public void handleMessage(Message msg) {
                    switch ( msg.what ) {                           
                        case 1:                             
                            org.jivesoftware.smack.packet.Message chatMessage;
                            chatMessage = (org.jivesoftware.smack.packet.Message) msg.obj;
                            Toast.makeText(context, "Chat message." +msg.toString(), Toast.LENGTH_LONG).show();

                            ChatEntry chatEntry = new ChatEntry();
                            chatEntry.setAttachedFile(false);
                            chatEntry.setFilePath(null);
                            chatEntry.setSenderJID(fJID);
                            chatEntry.setReceiverJID(mJID);
                            chatEntry.setSenderAvatarBitmap(fAvatarBitmap);
                            chatEntry.setWhen(System.currentTimeMillis());
                            chatEntry.setMessage(chatMessage.getBody());

                            chatEntries.add(chatEntry);
                            chatAdapter.setData(chatEntries);
                            chatAdapter.notifyDataSetChanged();
                            chatListView.setSelection(chatEntries.size()-1);
                            break;
                    }
                }
            };
            chat = chatManager.createChat(fJID, new MessageListener() {
                public void processMessage(Chat chat, final org.jivesoftware.smack.packet.Message chatMessage) {

                    Toast.makeText(context, "chatManager.createChat(fJID, new MessageListener() " , Toast.LENGTH_LONG).show();

                    if ( chatMessage.getBody() != null ) {
                        new Thread() {
                            public void run() {
                                Message msg = new Message();
                                msg.what = 1;
                                msg.obj = chatMessage;
                                Toast.makeText(context, "Chat message.before chathandler" +msg.toString(), Toast.LENGTH_LONG).show();

                                chatHandler.sendMessage(msg);
                            };
                        }.start();

                        Log.i(LOG_TAG, "Received message from: "+chatMessage.getFrom()+": "+chatMessage.getBody());
                    }
                }
            });             

            // Setup file transfer manager
            receiveFileManager = new FileTransferManager(xmppConnection);
            sendFileManager = new FileTransferManager(xmppConnection);

            // Setup default saving directory ('mychat' on sd card)
            externalStorageDirectory = new File(Environment.getExternalStorageDirectory(), "mychat");

            // Setup handler for receive file listener
            rHandler = new Handler() {
                @Override
                public void handleMessage(Message msg) {
                    switch ( msg.what ) {
                        case 0:
                            // Finish with error
                            layoutReceivingFile.setVisibility(View.GONE);
                            Toast.makeText(context, "Unable to receive file.", Toast.LENGTH_LONG).show();
                            break;

                        case 1:
                            // Finish with complete
                            layoutReceivingFile.setVisibility(View.GONE);
                            Toast.makeText(context, "You have received new file.", Toast.LENGTH_LONG).show();

                            ChatEntry chatEntry = new ChatEntry();
                            chatEntry.setAttachedFile(true);
                            chatEntry.setFilePath(rfile.getAbsolutePath());
                            chatEntry.setSenderJID(fJID);
                            chatEntry.setReceiverJID(mJID);
                            chatEntry.setSenderAvatarBitmap(fAvatarBitmap);
                            chatEntry.setWhen(System.currentTimeMillis());
                            chatEntry.setMessage("You just received an attachment.");

                            chatEntries.add(chatEntry);
                            chatAdapter.setData(chatEntries);
                            chatAdapter.notifyDataSetChanged();
                            chatListView.setSelection(chatEntries.size()-1);

                            break;

                        case 2:
                            // Streaming
                            layoutReceivingFile.setVisibility(View.VISIBLE);
                            break;
                    }
                }
            };

            // Setup receive file listener
            listener = new FileTransferListener() {
                public void fileTransferRequest(final FileTransferRequest request) {
                    Log.i(LOG_TAG, "Receive file coming");
                    new Thread() {
                        public void run() {
                            IncomingFileTransfer transfer = request.accept();
                            rfile = new File(externalStorageDirectory, transfer.getFileName());
                            try {
                                transfer.recieveFile(rfile);
                                Log.i(LOG_TAG, "Start receive file.");
                                while ( !transfer.isDone() ) {
                                    try {
                                        sleep(1000);

                                        int percent = (int)(transfer.getProgress()*100);
                                        if ( percent == 100 ) {
                                            rProgressBar.setProgress(0);
                                        } else {
                                            rProgressBar.setProgress(percent);
                                        }

                                        Log.i(LOG_TAG, "Receiving file: "+percent+" %");
                                        rHandler.sendEmptyMessage(2);
                                    } catch ( InterruptedException e ) {
                                        e.printStackTrace();
                                        Log.e(LOG_TAG, "Receiving thread was interrupoted: "+e.getMessage());
                                    }
                                }

                                if ( transfer.getStatus().equals(Status.complete) ) {
                                    rHandler.sendEmptyMessage(1);
                                    Log.i(LOG_TAG, "Receive file Completed.");
                                } else if ( transfer.getStatus().equals(Status.cancelled) ) {
                                    rHandler.sendEmptyMessage(0);
                                    Log.e(LOG_TAG, "Receive file Cancelled.");
                                } else if ( transfer.getStatus().equals(Status.error) ) {
                                    rHandler.sendEmptyMessage(0);
                                    Log.e(LOG_TAG, "Receive file Error.");
                                } else if ( transfer.getStatus().equals(Status.refused) ) {
                                    rHandler.sendEmptyMessage(0);
                                    Log.e(LOG_TAG, "Receive file Refused.");
                                }
                            } catch ( Exception e ) {
                                Log.e(LOG_TAG, "Unable to receive file: "+e.getMessage());
                            }
                        };
                    }.start();
                }
            };

            // Add receive file listener
            receiveFileManager.addFileTransferListener(listener);
        }
    }
}

// Send file
public void sendFile(final File file) {             
    sHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            switch ( msg.what ) {
                case 0:
                    // Finish with error
                    layoutSendinfFile.setVisibility(View.GONE);
                    Toast.makeText(context, "Unable to send file.", Toast.LENGTH_LONG).show();
                    break;

                case 1:
                    // Finish with complete
                    layoutSendinfFile.setVisibility(View.GONE);
                    Toast.makeText(context, "Your file has been sent.", Toast.LENGTH_LONG).show();

                    ChatEntry chatEntry = new ChatEntry();
                    chatEntry.setAttachedFile(true);
                    chatEntry.setFilePath(fileSrc);
                    chatEntry.setSenderJID(mJID);
                    chatEntry.setReceiverJID(fJID);
                    chatEntry.setSenderAvatarBitmap(mAvatarBitmap);
                    chatEntry.setWhen(System.currentTimeMillis());
                    chatEntry.setMessage("Your attachment has been sent.");

                    chatEntries.add(chatEntry);
                    chatAdapter.setData(chatEntries);
                    chatAdapter.notifyDataSetChanged();
                    chatListView.setSelection(chatEntries.size()-1);
                    break;

                case 2:
                    // Streaming
                    layoutSendinfFile.setVisibility(View.VISIBLE);
                    break;
            }
        }
    };

    sThread = new Thread() {
        @Override
        public void run() {
            Log.i(LOG_TAG, "Send file coming");
            OutgoingFileTransfer transfer = sendFileManager.createOutgoingFileTransfer(fJID);
            try {
                transfer.sendFile(file, "iChat-attachment-file");
                Log.i(LOG_TAG, "Starting send file");

                while ( !transfer.isDone() ) {
                    try {
                        sleep(1000);

                        int percent = (int)(transfer.getProgress()*100);
                        if ( percent == 100 ) {
                            sProgressBar.setProgress(0);
                        } else {
                            sProgressBar.setProgress(percent);
                        }                           

                        Log.i(LOG_TAG, "Sending file: "+percent+" %");
                        sHandler.sendEmptyMessage(2);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                        Log.e(LOG_TAG, "Send file thread was interrupted: "+e.getMessage());
                    }
                }

                if ( transfer.getStatus().equals(Status.complete) ) {
                    sHandler.sendEmptyMessage(1);
                    Log.i(LOG_TAG, "Send file is completed");
                } else {
                    sHandler.sendEmptyMessage(0);
                    Log.e(LOG_TAG, "Send file is failed");
                }
            } catch (XMPPException e) {
                Log.e(LOG_TAG, "Unable to send file: "+e.getMessage());
            }
        }
    };
    sThread.start();
}

@Override
  protected void onActivityResult(int requestCode, int resultcode, Intent intent) {
      super.onActivityResult(requestCode, resultcode, intent);
      if (requestCode == REQUEST_CODE_FOR_GALLERY) {
          if (intent != null) {               
              Cursor cursor = getContentResolver().query(intent.getData(), null, null, null, null);
              cursor.moveToFirst();

              int idx = cursor.getColumnIndex(ImageColumns.DATA);
              fileSrc = cursor.getString(idx);

              File file = new File(fileSrc);
              if ( file.exists() ) {
                  sendFile(file);
              } else {
                  Toast.makeText(context, "Image was not found, please try again.", Toast.LENGTH_LONG).show();
              }
          } else {
              Toast.makeText(context, "Cancelled", Toast.LENGTH_SHORT).show();
          }
      } else if (requestCode == REQUEST_CODE_FOR_FILEMANAGER) {
          if ( resultcode == RESULT_OK ) {
              if( intent.hasExtra(FilePickerActivity.EXTRA_FILE_PATH) ) {
                    File file = new File(intent.getStringExtra(FilePickerActivity.EXTRA_FILE_PATH));

                    // Set the file path text view
                    if ( file.exists() && isAllowedFileExtension(file) ) {
                        sendFile(file);
                    } else {
                        Toast.makeText(context, "This file is not allowed, please choose another file.", Toast.LENGTH_LONG).show();
                    }
                }                 
          } else {
              Toast.makeText(context, "Cancelled", Toast.LENGTH_SHORT).show();
          }
      }
  }

public boolean isAllowedFileExtension(File file) {
    boolean result = false;

    String filename = file.getName();
    int length = filename.length();

    int correctPosition = 0;
    String ext = "";
    for ( int i = length-1; i > 0; i-- ) {
        if ( filename.charAt(i) == '.' ) {
            correctPosition = i;
            break;
        }
    }

    if ( correctPosition == 0 ) {
        Toast.makeText(context, "This file is invalid, please choose another file.", Toast.LENGTH_LONG).show();
    } else {
        for ( int i = correctPosition+1; i < length; i++ ) {
            ext += filename.charAt(i);
        }

        if ( ext.trim().length() == 0 ) {
            Toast.makeText(context, "This file is invalid, please choose another file.", Toast.LENGTH_LONG).show();
        } else {
            boolean isAllowedExtension = false;
            String[] allowedExtension = new String[] { "png", "jpg", "gif", "tif", "bmp", "doc", "docx", "ppt", "pptx", "xls", "xlsx", "pdf", "zip", "rar" };
            for ( int i = 0; i < allowedExtension.length; i++ ) {
                if ( ext.equalsIgnoreCase(allowedExtension[i]) ) {
                    isAllowedExtension = true;
                }
            }

            if ( isAllowedExtension ) {
                result = true;
            }
        }
    }

    return result;
}

public boolean isImageFile(File file) {
    boolean result = false;

    String filename = file.getName();
    int length = filename.length();

    int correctPosition = 0;
    String ext = "";
    for ( int i = length-1; i > 0; i-- ) {
        if ( filename.charAt(i) == '.' ) {
            correctPosition = i;
            break;
        }
    }

    if ( correctPosition == 0 ) {
        Toast.makeText(context, "This file is invalid, please choose another file.", Toast.LENGTH_LONG).show();
    } else {
        for ( int i = correctPosition+1; i < length; i++ ) {
            ext += filename.charAt(i);
        }

        if ( ext.trim().length() == 0 ) {
            Toast.makeText(context, "This file is invalid, please choose another file.", Toast.LENGTH_LONG).show();
        } else {
            boolean isAllowedExtension = false;
            String[] allowedExtension = new String[] { "png", "jpg", "gif", "tif", "bmp" };
            for ( int i = 0; i < allowedExtension.length; i++ ) {
                if ( ext.equalsIgnoreCase(allowedExtension[i]) ) {
                    isAllowedExtension = true;
                }
            }

            if ( isAllowedExtension ) {
                result = true;
            }
        }
    }

    return result;
}
公共类聊天活动扩展活动{
专用静态最终整型请求\u库代码\u=1;
文件管理器的私有静态最终整数请求\u代码\u=2;
私有静态字符串LOG_TAG=“-Chat Activity-”;
私人语境;
私有列表视图chatListView;
专用按钮附件按钮;
私人按钮发送按钮;
私人编辑文本聊天信息编辑文本;
私人ArrayList聊天记录;
专用聊天适配器;
私有字符串fJID,fNickName;
私有字符串mJID,mNickName;
私有字节[]fAvatarByte,mAvatarByte;
私有位图fAvatarBitmap,mAvatarBitmap;
专用XMPPConnection XMPPConnection;
私有文件传输管理器接收文件管理器;
私有文件传输管理器sendFileManager;
私有文件传输侦听器;
私有文件外部存储目录;
私有字符串文件;
二等兵山德勒,兰德勒;
私有线程sThread;
私有文件;
专用线路布局布局接收文件;
专用线路布局布局SendInfFile;
私人ProgressBar rProgressBar;
私人ProgressBar sProgressBar;
私人聊天经理聊天经理;
私人聊天;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.layout\u chat);
//上下文
上下文=这个;
//视图匹配
chatListView=(ListView)findViewById(R.id.chat\u message\u ListView);
AttachmentButton=(按钮)findViewById(R.id.chat\u AttachmentButton);
sendButton=(按钮)findViewById(R.id.chat\u send\u按钮);
chatMessageEditText=(EditText)findViewById(R.id.chat\u message\u edit\u text);
layoutReceivingFile=(LinearLayout)findViewById(R.id.chat\u file\u transfer\u receive\u布局);
layoutSendinfFile=(LinearLayout)findViewById(R.id.chat\u file\u transfer\u send\u布局);
rProgressBar=(ProgressBar)findViewById(R.id.chat\u receive\u file\u progress\u bar);
sProgressBar=(ProgressBar)findViewById(R.id.chat\u send\u file\u ProgressBar);
//附件按钮的事件
AttachmentButton.setOnClickListener(新的OnClickListener(){
公共void onClick(视图){
AlertDialog.Builder=新建AlertDialog.Builder(上下文);
builder.setTitle(“文件附件”);
setMessage(“选择您的文件类型”);
setNegativeButton(“Picture”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
意向照片采集器内容=新意向(意向.行动\u采集器);
photopickerinent.setType(“image/*”);
startActivityForResult(照片采集器内容、画廊申请代码);
}
});
setPositiveButton(“文件”,新的DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
意向意向=新意向(ChatActivity.this、FilePickerActivity.class);
ArrayList extensions=新的ArrayList();
扩展。添加(“.png”);
增补(“.jpg”);
添加(“.gif”);
扩展。添加(“.tif”);
添加(“.bmp”);
扩展。添加(“.doc”);
扩展。添加(“.docx”);
扩展。添加(“.ppt”);
扩展。添加(“.pptx”);
扩展。添加(“.xls”);
扩展。添加(“.xlsx”);
增补(“.pdf”);
扩展。添加(“.zip”);
增加(“rar”);
intent.putExtra(FilePickerActivity.EXTRA\u接受的文件扩展名、扩展名);
startActivityForResult(文件管理器的意图、请求代码);
}
});
builder.setCancelable(true);
AlertDialog AlertDialog=builder.create();
alertDialog.show();
}
});
//发送消息按钮的事件
setOnClickListener(新的OnClickListener(){
公共void onClick(视图){
String message=chatMessageEditText.getText().toString();
if(message.trim().length()==0){
Toast.makeText(上下文,“请填写一些文本”,Toast.LENGTH_SHORT.show();
}否则{
试一试{
发送消息(message);
chatMessageEditText.setText(空);
Log.d(Log_标签,“尝试发送消息1”);
Toast.makeText(上下文,“尝试发送”+message.toString(),Toast.LENGTH_LONG.show();
ChatEntry ChatEntry=新建ChatEntry();
chatEntry.setAttachedFile(false);
chatEntry.setFilePath(null);
chatEntry.setSenderJID(mJID);
chatEntry.setReceiverJID(fJID);
chatEntry.setSenderAvatarBitmap(mAvatarBitmap);
setWhen(System.currentTimeMillis());
setMessage(message);
Log.d(Log_标签,“尝试发送消息2”);
添加(chatEntry);
setData(chatEntries);
notifyDataSetChanged();
chatListView.setSelection(chatEntries.size()-1);
L