1. Trang chủ
  2. » Công Nghệ Thông Tin

Android Chat

8 133 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 388,5 KB

Nội dung

Android Chat

@2010 Mihail L. Sichitiu 1 Android Introduction Hello Threads @2010 Mihail L. Sichitiu 2 Goal  Create a basic chat application that uses broadcast UDP to send and receive messages on the local network (75%)  Improve the chat application (25%) You: Your text You: Your text @2010 Mihail L. Sichitiu 3 Layout ListView showing both the messages sent as well as received EditText allowing users to enter text to be sent Send button – sends the text @2010 Mihail L. Sichitiu 4 Application Structure Main Activity ServerThread OnCreate( ) Create the thread Start the thread OnDestroy( ) close the socket Constructor Open the Socket If successful – “Server Started” Find the broadcast IP Address Find the IP Address run( ) while (socketStillOpen){ receive packet display Message send reply } OnClickListener( ) Send Message Message Handler sendPacket( ) send UDP @2010 Mihail L. Sichitiu 5 Main Activity (HelloThreads)  ClassMembers  EditText msg; // For typing the message  Button send; // For sending the message  ListView msgList; // For displaying the message list  ArrayAdapter <String>receivedMessages; // Holds the list of messages  ServerThread myThread; // The server thread handling all networking  Handler myHandler Similar to the one in HelloThreads  OnCreate( )  Get handles (findViewById) to all GUI elements  msgList = (ListView)findViewById(R.id.msgList);  receivedMessages = new ArrayAdapter<String>(this, R.layout.message);  msgList.setAdapter(receivedMessages);  Create ServerThread: myThread=new ServerThread(getApplicationContext(),mHandler)  Start the Thread: myThread.start();  Register the OnClickListener for the Send Button  OnDestroy( )  OnClickListener( ) case PACKET_CAME: String incomingMessage = (String) msg.obj; receivedMessages.add("You: "+incomingMessage); @2010 Mihail L. Sichitiu 6 ServerThread  public class ServerThread extends Thread  Class Members  Handler mHandler; // Handler for messages in the main thread  Context mContext; // Context to the application (for getting ip Addresses)  DatagramSocket serverSocket; // Socket used both for sending and receiving  boolean socketOK=true; // True as long as we don't get socket errors  InetAddress myBcastIPAddress; // my broadcast IP addresses  InetAddress myIPAddress; // my IP addresses  public ServerThread(Context currentContext,Handler handler){  mContext = currentContext;  mHandler = handler;  try  serverSocket = new DatagramSocket(PORT);  serverSocket.setBroadcast(true); . catch and handle the exception  try getMyWiFiBcastAndIPAddress(); . catch and handle the exception  run( ) – similar to HelloThreads, without the reply  sendPacket(String msg) – similar to UDP sender in HelloSockets @2010 Mihail L. Sichitiu 7 Getting the IP Address: getMyWiFiBcastAndIPAddress( ); WifiManager mWifi = (WifiManager) (mContext.getSystemService(Context.WIFI_SERVICE)); WifiInfo info = mWifi.getConnectionInfo(); DhcpInfo dhcp = mWifi.getDhcpInfo(); int myIntegerIPAddress = dhcp.ipAddress; int myIntBroadcast = (dhcp.ipAddress & dhcp.netmask) | ~dhcp.netmask; byte[] quads = new byte[4]; for (int k = 0; k < 4; k++) quads[k] = (byte) ((myIntegerIPAddress>> k * 8) & 0xFF); try{ InetAddress myIPAddress = InetAddress.getByAddress(quads); return myIPAddress; }catch(Exception e){ if(D) Log.e(TAG,"Cannot Get My Own IP Address"); return null } Improvements  Your choice of examples – below are only examples  Different improvements are worth different amount of points  Max points 125%  Examples (only examples – go wild!):  Add names to the messages  Add images  Add voice  Add preferences  Handle Application lifecycle (on restart, on pause, on resume, etc.)  Vibrate or notify on receipt of a new message  Handle landscape/portrait  Localize it  Looks (background, icon, button, etc.)  Make utility for saving all messages in a file @2010 Mihail L. Sichitiu 8 . @2010 Mihail L. Sichitiu 1 Android Introduction Hello Threads @2010 Mihail L. Sichitiu 2 Goal  Create a basic chat application that uses broadcast. broadcast UDP to send and receive messages on the local network (75%)  Improve the chat application (25%) You: Your text You: Your text @2010 Mihail L. Sichitiu

Ngày đăng: 20/11/2013, 21:17

Xem thêm

TỪ KHÓA LIÊN QUAN

w