GoWifi

GoWifi

O que você acha de ser um desbravador?, descobrir novas redes wifi por ae e se tornar um desbravador lendário, assim ajudando a outras pessoas a não ficarem sem internet.

Como Funciona o Web socket Dele??

HTTP: Rest

JSON

Volley

Volley is an HTTP library that makes networking for Android apps easier and most importantly, faster

Fazendo chamada ao servidor

public class CustomJsonObjectRequest extends JsonObjectRequest{

    private static RequestQueue mQueue;
    private final static String TAG_REQUEST = "Locations";
    private static String response;
    private static Context context;
    public static final String URI_API = "http://314.bl.ee/api.php";

    private CustomJsonObjectRequest(int method, String url, JSONObject jsonRequest, Response.Listener<JSONObject> listener, Response.ErrorListener errorListener) {
        super(method, url, jsonRequest, listener, errorListener);
        super.setTag(TAG_REQUEST);
    }

    @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        HashMap<String, String> headers = new HashMap<String, String>();
        headers.put("Content-type", "application/json; charset-utf-8");
        return super.getHeaders();
    }

    public static void send(Context context, int method, String url){
        CustomJsonObjectRequest.context = context;
        CustomJsonObjectRequest.db = new DB(context);

        mQueue = CustomVolleyRequestQueue.getInstance(context.getApplicationContext()).getRequestQueue();

        if(params == null){
            params = "?c="+db.getCountLines();
        }

        mQueue.add(new CustomJsonObjectRequest(method, url+params, new JSONObject(), new EventJSON(), new EventJSON()));
    }

Recebendo resposta

private static class EventJSON implements Response.Listener, Response.ErrorListener{
        @Override
        public void onErrorResponse(VolleyError error) {
            CustomJsonObjectRequest.error = error.getMessage();
        }

        @Override
        public void onResponse(Object response) {
            try {
                JSONObject json = new JSONObject(response.toString());

                // verifica o status caso seja atualizar ele vai ler um outro campo que vai ser 
                //enviado com os dados para ser jogado no banco de dados local
                
                if(json.getString("status").equals("atualizar")){
                    JSONArray array = (JSONArray) json.get("data");

                    //gravando no banco local as novas localizações
                    for (int i = 0; i < array.length(); i++) {
                        db.setData(array.getJSONObject(i).getString("ssid"),
                                array.getJSONObject(i).getString("password"),
                                Double.parseDouble(array.getJSONObject(i).getString("latitude")),
                                Double.parseDouble(array.getJSONObject(i).getString("longitude")));
                    }

                    Intent it = new Intent(context, MapsActivity.class);

                    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, it, PendingIntent.FLAG_UPDATE_CURRENT);

                    Notification.create(context, "Ei, Tenho novidades!!", "Acabei de saber que tem novas redes wifi descobertas.", pendingIntent);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }

Testes

http://314.bl.ee/api.php?la=-5.0937358&lg=-42.8111187&ssid=killlakill&pw=teste

Questions?

deck

By Joeverson Santos