/** send user location to server */ public void sendLocation(double lat, double lon) { if (connection != null && connection.isConnected()) { JSONObject json = new JSONObject(); try { json.put("lon", lon); json.put("lat", lat); } catch (JSONException e) { SLog.e(TAG, e.getMessage()); } String message = json.toString(); SLog.d(TAG, "trying to send: " + message); connection.sendTextMessage(message); } }
@Override public int onStartCommand(Intent intent, int flags, int startId) { // allow to use service when device is inactive WakeLock wakelock = ((PowerManager) getSystemService(POWER_SERVICE)) .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "SocketServiceLock"); wakelock.acquire(); SLog.d(TAG, "onStartCommand"); if (intent != null) { SLog.d(TAG, intent.toUri(0)); } shutDown = false; // initialize connection if (connection == null || (!connection.isConnected() && !isConnecting)) { connectionWakeLock = ((PowerManager) getSystemService(POWER_SERVICE)) .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "SocketService_clientLock"); connection = new WebSocketConnection(); try { isConnecting = true; connection.connect( String.format( Consts.SERVER_URL, Settings.getUserLogin(this), Settings.getUserPassword(this)), new WebSocketHandlerImpl()); // wake lock will be released in connection listener; } catch (WebSocketException e) { SLog.e(TAG, e.getMessage()); if (connectionWakeLock != null && connectionWakeLock.isHeld()) { connectionWakeLock.release(); } } // start shutting down } else if (intent != null) { if (ACTION_SHUT_DOWN.equals(intent.getAction())) { shutDown = true; if (connection.isConnected()) connection.disconnect(); } } wakelock.release(); return START_STICKY; }