Я попытался создать IntentService, но потом я прочитал об этом в Интернете, что вместо этого я должен использовать Сервис.Я на самом деле не знаю, что я делаю неправильно в коде.Может кто-нибудь объяснить мне немного?
Я пытаюсь создать простой Сервис, который считывает широту и долготу, даже если приложение удаляется с экрана, и, наконец, отправляет их в мой пользовательский API.Похоже, что сбой приложения в Location Manager в GPSTracker.java
GPSTracker.java
package YOU.SOLD.YOUR.SOUL;
import android.annotation.SuppressLint;
import android.app.Service;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import androidx.annotation.Nullable;
public class GPSTracker extends Service implements LocationListener {
LocationManager LM;
@SuppressLint("MissingPermission")
@Override
public void onCreate() {
LM.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 1, this);
}
@Override
public void onDestroy() {
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onLocationChanged(Location location) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
}
MainActivity.java
package YOU.SOLD.YOUR.SOUL;
import android.Manifest;
import android.content.Intent;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
public class MainActivity extends AppCompatActivity {
private static final int PERMISSION_1 = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, PERMISSION_1);
Intent intent = new Intent(this, GPSTracker.class);
startService(intent);
}
}
Разрешения, добавленные в манифест, - это COARSE иПрекрасное местоположение.Также служба была добавлена как .GPSTracker
java.lang.RuntimeException: Невозможно создать службу YOU.SOLD.YOUR.SOUL.GPSTracker: java.lang.NullPointerException: Попытка вызвать виртуальный метод voidandroid.location.LocationManager.requestLocationUpdates (java.lang.String, long, float, android.location.LocationListener) 'для нулевой ссылки на объект
и
Причинаby: java.lang.NullPointerException: Попытка вызвать виртуальный метод void android.location.LocationManager.requestLocationUpdates (java.lang.String, long, float, android.location.LocationListener) 'для нулевого объекта, ссылка