¿Cómo enviar mi ubicación (longitud y latitud) como una respuesta sms a otra persona?
Tengo una aplicación en la que necesito enviar mi ubicación (longitud y latitud) a otra persona al recibir un sms de él. De alguna manera conseguir mi ubicación (longitud y latitud) y ponerlo como un texto en la respuesta sms y luego Enviarlo a otra persona.Pero ahora estoy frente a un problema en la forma de obtener mi ubicación y ponerlo como un texto en respuesta sms.Till ahora he escrito un código que envía un mensaje de respuesta en la recepción de un sms de otra persona. ¿Puede alguien decirme cómo obtener mi ubicación y ponerlo como mensaje de texto?
Aquí está mi código para enviar un mensaje de respuesta:
- Content: // sms / enviado / no funciona
- Selecciona los primeros SMS en la bandeja de entrada de la base de datos de Android
- ¿Es posible ocultar / cambiar el número de móvil del remitente mientras se envía sms en android?
- ¿Cómo eliminar sms de la bandeja de entrada?
- IPhone o Android que utilizan la autenticación basada en SMS?
Public void onReceive (Context context, intención de intención) {
Intent m=new Intent(context, ReceivelocationActivity.class); PendingIntent pi=PendingIntent.getBroadcast(context, 0, m, 0); Bundle bundle = intent.getExtras(); SmsMessage[] msgs = null; String str = ""; String str2=""; String str3=""; String autoReplyToken = "Request_Accepted"; if (bundle != null) { //---retrieve the SMS message received--- Object[] pdus = (Object[]) bundle.get("pdus"); msgs = new SmsMessage[pdus.length]; for (int i=0; i<msgs.length; i++){ msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]); str += "SMS from " + msgs[i].getOriginatingAddress(); str2=msgs[i].getOriginatingAddress(); str += " :"; str += msgs[i].getMessageBody().toString(); str3=msgs[i].getMessageBody().toString(); str += "\n"; } //---display the new SMS message--- Toast.makeText(context, str, Toast.LENGTH_SHORT).show(); SmsManager sms = SmsManager.getDefault(); boolean isAutoReply = str3.startsWith(autoReplyToken); /* As suggested by Dan J */ Criteria hdCrit = new Criteria(); hdCrit.setAccuracy(Criteria.ACCURACY_COARSE); hdCrit.setAltitudeRequired(false); hdCrit.setBearingRequired(false); hdCrit.setCostAllowed(true); hdCrit.setPowerRequirement(Criteria.POWER_LOW); hdLocMgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE); hdLocProvider = hdLocMgr.getBestProvider(hdCrit, true); Location location = hdLocMgr.getLastKnownLocation(hdLocProvider); Double dlat = location.getLatitude(); Double dlon = location.getLongitude(); String msg = dlat + "," + dlon ; /* As suggested by Dan J */ if (!isAutoReply) { String autoReplyText = autoReplyToken + msg; sms.sendTextMessage(str2, null, autoReplyText, pi, null); } } }
¿Puede alguien decirme cómo enviar la ubicación real en "msg" variable en lugar de cadena "ubicación". Cualquier persona con alguna idea por favor hágamelo saber? Gracias por adelantado.
- ¿Por qué no puedo enviar un esqueleto espeluznante y espeluznante SMS?
- Android - enviar sms en un hilo separado
- Envío y recepción de texto mediante el emulador de Android
- Anular la aplicación predeterminada de mensajería de android
- ¿Cómo pasar datos a BroadcastReceiver?
- Extraer (analizar) la cantidad y descripción de BIZ (Transaction) sms
- Envío de SMS a granel con el administrador de sms en android
- Cómo actualizar el hilo de sms después de insertar un borrador en "content: // sms / draft"
Vea esta respuesta para saber cómo obtener la longitud y la latitud:
Entonces solo cambia
String msg = "location" ;
a
String msg = dlat + ", " + dlon;
También necesitarás agregar los permisos adecuados a tu XML de manifiesto (por ejemplo, ver mi respuesta aquí ).
- ¿Cómo puede crear más de una alarma?
- La mejor manera de mostrar la imagen en la vista de la cuadrícula es desplazarse suavemente