Разработка приложения, которое автоматически отправляет сообщение в Android Studio [Duplicate]JAVA

Программисты JAVA общаются здесь
Anonymous
 Разработка приложения, которое автоматически отправляет сообщение в Android Studio [Duplicate]

Сообщение Anonymous »

Я обычно не получаю никаких ответов, но я вроде отчаянно, так что предполагаю, что я попробую xd < /p>
Я разрабатываю мобильное приложение в Android Studio Нацеленный на пожилой Peolple, и я хочу реализовать кнопку, которая, ранее выбрав аварийный контакт, отправляет сообщение SOS с местоположением в режиме реального времени. Мне удалось нажать кнопку, а затем, если я выберу приложение по умолчанию (SMS), тело текста предварительно написано, и все, что мне нужно сделать, это нажать Отправить (место тоже в порядке), но Мне нужно, чтобы он был автоматическим, я имею в виду, что мне не нужно нажимать кнопку «Отправить», чтобы отправить. >

Код: Выделить всё

package com.example.appassistant;

import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.ParcelFormatException;
import android.telephony.SmsManager;
import android.util.Log;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.Toast;
import android.Manifest;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;

public class MainActivity extends AppCompatActivity {
private FusedLocationProviderClient fusedLocationClient;
private static final int PERMISSION_REQUEST_CODE = 100;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);

Button btnSOS = findViewById(R.id.btnSOS);

btnSOS.setOnClickListener(view -> {
sendSOS();
});

}
private void sendEmergencyMessage(double lat, double lon) {
String emergencyContact = "+34" + getEmergencyContact();
if (emergencyContact == null || emergencyContact.isEmpty()) {
Toast.makeText(this, "No hay contacto de emergencia configurado", Toast.LENGTH_SHORT).show();
return;
}

String message = "¡Emergencia! Necesito ayuda.  Mi ubicación: https://maps.google.com/?q=" + lat + "," + lon;
Log.d("SOS", "Enviando SMS a " + emergencyContact + ": " + message);
Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.setData(Uri.parse("sms:" + emergencyContact));
smsIntent.putExtra("sms_body", message);
startActivity(smsIntent);

}
private void sendSOS() {

// Verificar permisos correctamente
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) {

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.SEND_SMS}, PERMISSION_REQUEST_CODE);
return;
}

fusedLocationClient.getLastLocation()
.addOnSuccessListener(this, location -> {
if (location != null) {
String emergencyContact = "+34" + getEmergencyContact() ;

Log.d("SOS", "Número de emergencia: " + emergencyContact);
sendEmergencyMessage(location.getLatitude(), location.getLongitude());
} else {
Toast.makeText(this, "No se pudo obtener la ubicación", Toast.LENGTH_SHORT).show();
}
});
}

private String getEmergencyContact() {
String contact = getSharedPreferences("EmergencyContact", MODE_PRIVATE)
.getString("emergency_phone", null);

Log.d("SOS", "getEmergencyContact() devuelve: " + contact);
return contact;
}

// Manejar la respuesta de la solicitud de permisos
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == PERMISSION_REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
sendSOS();
} else {
Toast.makeText(this, "Se requieren permisos para enviar el mensaje de emergencia", Toast.LENGTH_SHORT).show();
}
}
}
}
Как сделать сообщение, отправляющее автоматическое, когда вы нажимаете кнопку SOS?

Подробнее здесь: https://stackoverflow.com/questions/794 ... oid-studio

Вернуться в «JAVA»