Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class WifiClient {
- private static interface OnWifiConnectedListener {
- public void onConnected();
- }
- private static final MSG_QUIT = 0;
- private static final MSG_EVT = 1;
- private static final int STATE_UNCONNECTED = 0;
- private static final int STATE_CONNECTING = 1;
- private static final int STATE_CONNECTED = 2;
- private class WifiHandler extends Handler {
- // TODO: implement
- }
- private Handler mHandler;
- private Thread mThread;
- private Object mStateLock;
- private boolean mState;
- public WifiClient() {
- mStateLock = new Object();
- mState = STATE_UNCONNECTED;
- }
- // Returns false if a connection is already in progress or is connected, true otherwise
- // This could possibly be fixed further by returning an interface in OnWifiConnectedListener.onConnected(), so functions cannot be called until connected
- public boolean connect(OnWifiConnectedListener l) {
- synchronized(mStateLock) {
- if (mSTATE != STATE_UNCONNECTED) {
- return false;
- }
- mState = STATE_CONNECTING;
- }
- // This could possibly reference a context
- final WeakReference<OnWifiConnectedListener> listenerRef = new WeakReference<OnWifiConnectedListener>(l);
- mThread = new Thread() {
- @Override
- public void run() {
- // get socket and stream
- Looper.prepare();
- mHandler = new WifiHandler();
- synchronized(mStateLock) {
- mState = STATE_CONNECTED;
- }
- OnWifiConnectedListener l = listenerRef.get();
- if (l != null) {
- l.onConnected();
- }
- Looper.loop();
- }
- };
- mThread.start();
- return true;
- }
- public boolean disconnect() {
- synchronized(mStateLock) {
- if (mState == STATE_UNCONNECTED) {
- return false;
- }
- }
- Message.obtainEmptyMessage(MSG_QUIT);
- mHandler.sendMessageAtFrontOfQueue(msg);
- return true;
- }
- public boolean sendEvent(String evt) {
- synchronized(mStateLock) {
- if (mState != STATE_CONNECTED) {
- return false;
- }
- }
- Message msg = Message.obtainMessage(MSG_EVT, 0, 0, evt);
- mHandler.sendMessage(msg);
- return true;
- }
- }
Add Comment
Please, Sign In to add comment