基于android开发的聊天室 ChatRoom 1.0 :(三) 处理用户注册

来源:互联网 发布:java把数据发到syslog 编辑:程序博客网 时间:2024/06/05 09:37

在本应用当中添加了一个用户注册的功能,用户注册完之后,在服务器端将保存用户的注册的信息,当下一次再进入应用时将自动尝试与服务器的连接,类似于我们常用的聊天工具,具体的注册方式为:填写ip地址、端口号、输入用户名、选择头像,单击注册按钮即可完成注册,前提是服务器必须要开启啦。

 

上传头像时提供了本地相册上传和摄像头上传两种方式,同时对图像进行了裁剪,以适合头像的大小。

/** * 裁剪图片方法实现 *  * @param data */private void startPhotoZoom(Uri uri) {Intent intent = new Intent("com.android.camera.action.CROP");intent.setDataAndType(uri, "image/*");// 下面这个crop=true是设置在开启的Intent中设置显示的VIEW可裁剪intent.putExtra("crop", "true");// aspectX aspectY 是宽高的比例intent.putExtra("aspectX", 1);intent.putExtra("aspectY", 1);// outputX outputY 是裁剪图片宽高intent.putExtra("outputX", 100);intent.putExtra("outputY", 100);intent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.toString());intent.putExtra("noFaceDetection", true);intent.putExtra("return-data", true);startActivityForResult(intent, REQUE_CODE_CROP);}


客户端通过开启线程建立socket连接完成注册功能,在这里完成注册后关闭该socket,已经不需要了。注册完成后将在服务器端模拟数据库用xml文件保存用户的注册信息。

/** * 注册用户 * @param cropBitmap * @param ip * @param port * @param name * @throws IOException  * @throws Exception  */public void registerUser(Context context, Bitmap cropBitmap, String ip, String port,String name) throws IOException {UserService userService = new UserService(context);ByteArrayOutputStream byteoutput = new ByteArrayOutputStream();cropBitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteoutput);byte datas[] = byteoutput.toByteArray();DataOutputStream output = null;DataInputStream input = null;Socket socket = null;long rowId = 0;try {User user = new User(ip, port, name, cropBitmap, 1);SocketAddress socAddress = new InetSocketAddress(InetAddress.getByName(ip), Integer.parseInt(port)); socket = new Socket();socket.connect(socAddress, 3000);output = new DataOutputStream(socket.getOutputStream());input = new DataInputStream(socket.getInputStream());String flagLine = ContentFlag.REGOSTER_FLAG + name;output.writeUTF(flagLine);output.write(datas);//读取服务器分配给用户的唯一标识rowId = Long.valueOf(input.readUTF());user.setId(rowId);userService.insertUser(user);} catch (IOException e) {throw new IOException("fail connect to the server");} finally {try {if(byteoutput!= null)byteoutput.close();if (output != null)output.close();if (input != null)input.close();if (socket != null)socket.close();if (cropBitmap != null) cropBitmap.recycle();} catch (IOException e) {e.printStackTrace();}}}


注册页面效果图:

 

完整资源代码下载地址:http://download.csdn.net/detail/jiangliloveyou/6457969

原创粉丝点击