Pessoal, olá.
estou iniciando no Android e sou hobbista. Entretanto, estou desenvolvendo um projeto para ajudar o setor público.
Li sobre o receiver e consegui implementar o alarme para chamar um “rotina” que atualizará a localização de um celular, de tempos em tempos. Essa localização é salva em um banco no WEBSERVICE.
Ocorre que quando chamo a rotina em uma Activity, tudo corre bem, mas a mesma rotina chamada direto no Receiver, nada acontece. Nem erro do Json é acusado.
Segue o Código do Receiver:
</ classe
public class Alarm extends BroadcastReceiver implements Response.ErrorListener, Response.Listener {
private RequestQueue rq;
private JsonRequest jrq;
private String url;
public String numero;
public String latitude;
public String longitude;
public String msg;
@Override
public void onReceive(Context context, Intent i) {
Bundle extras = i.getExtras();
if (extras != null) {
numero = extras.getString("numero");
}
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
@SuppressLint("MissingPermission") Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Double latPoint = location.getLatitude();
Double lngPoint = location.getLongitude();
latitude = latPoint.toString();
longitude = lngPoint.toString();
String sql = "UPDATE requisicao set latitude='" + latitude + "', set longitude='" + longitude + "' WHERE numero='" + numero + "'";
url = "xxxxxxx/sql.php?sql=" + sql;
rq = Volley.newRequestQueue(context);
jrq = new JsonObjectRequest(Request.Method.GET, url, null, this, this);
rq.add(jrq);
Toast.makeText(context, "Mensagem: " + msg, Toast.LENGTH_SHORT).show();
}
@Override
public void onErrorResponse(VolleyError error) {
msg = "Erro na atualização!";
}
@Override
public void onResponse(JSONObject response) {
msg = "Atualização com sucesso!";
}
}
/>