У меня проблемы с отправкой координат моего местоположения с помощью SMS. Я не могу правильно оформить отправку СМС. Вот мой главный код:
private static final int REQUEST_CODE = 1000;
FusedLocationProviderClient fusedLocationProviderClient;
LocationRequest locationRequest;
LocationCallback locationCallback;
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode)
{
case REQUEST_CODE:
{
if(grantResults.length > 0)
{
if(grantResults[0] == PackageManager.PERMISSION_GRANTED)
{
}
else if(grantResults[0] == PackageManager.PERMISSION_DENIED)
{
}
}
}
}
}
Здесь в моем onCreate знак двойного && читает неожиданную ошибку токена. Я также думаю, что мне нужно добавить приватную пустоту, но я не знаю, какой тип соответствует отправке SMS.
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION))
{
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_CODE);
}
else
{
buildLocationRequest();
buildLocationCallback();
fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
{
if (ActivityCompat.checkSelfPermission(FullscreenActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED)
&& ActivityCompat.checkSelfPermission(FullscreenActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION);
ActivityCompat.requestPermissions(FullscreenActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_CODE);
return;
}
fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, Looper.myLooper());
}
FusedLocationProviderClient provider = fusedLocationProviderClient;
Location currentLocation = new Location(String.valueOf(provider));
location("MY_PHONE_NUMBER", currentLocation);
После того, как в разделе onCreate у меня больше всего проблем, особенно с методом location в строке Location currentLocation, которая говорит, что параметр никогда не используется, и я также получаю ошибку при закрытии getLongitude. Он содержит ошибку с точкой с запятой и ничего, что я добавляю, не работает, например, а). Я не знаю, правильно ли я делаю это местоположение / класс SMS.
private void location(String phoneNumber, Location currentLocation) {
SmsManager smsManager = SmsManager.getDefault();
String smsBody = "maps.google.com?q=";
smsManager.sendTextMessage(phoneNumber, null, smsBody, null, null);
}
private void buildLocationCallback() {
locationCallback = new LocationCallback()
{
@Override
public void onLocationResult(LocationResult locationResult) {
for(Location location:locationResult.getLocations())
SmsManager.getDefault(String.valueOf(location.getLatitude())
+","
+String.valueOf(location.getLongitude());
}
};
}
private void buildLocationRequest() {
locationRequest = new LocationRequest();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(100);
locationRequest.setFastestInterval(50);
locationRequest.setSmallestDisplacement(10);
}