Service is now running in foreground.
This commit is contained in:
parent
1b7e725026
commit
ee8fdc90e6
|
|
@ -5,6 +5,10 @@
|
||||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
|
||||||
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
||||||
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
||||||
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION"/>
|
||||||
|
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
|
|
@ -19,7 +23,9 @@
|
||||||
<service
|
<service
|
||||||
android:name=".LocationLoggingService"
|
android:name=".LocationLoggingService"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:exported="true"></service>
|
android:exported="true"
|
||||||
|
android:foregroundServiceType="location"
|
||||||
|
/>
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,11 @@
|
||||||
package com.proculite.logmylocation;
|
package com.proculite.logmylocation;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
|
import android.app.NotificationChannel;
|
||||||
|
import android.app.NotificationManager;
|
||||||
import android.app.Service;
|
import android.app.Service;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.pm.ServiceInfo;
|
||||||
import android.location.Location;
|
import android.location.Location;
|
||||||
import android.location.LocationListener;
|
import android.location.LocationListener;
|
||||||
import android.location.LocationManager;
|
import android.location.LocationManager;
|
||||||
|
|
@ -12,6 +15,8 @@ import android.os.IBinder;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.core.app.NotificationCompat;
|
||||||
|
import androidx.core.app.ServiceCompat;
|
||||||
import androidx.core.location.LocationManagerCompat;
|
import androidx.core.location.LocationManagerCompat;
|
||||||
import androidx.room.Room;
|
import androidx.room.Room;
|
||||||
|
|
||||||
|
|
@ -33,6 +38,21 @@ public class LocationLoggingService extends Service implements LocationListener
|
||||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||||
Log.d(TAG, "Service started.");
|
Log.d(TAG, "Service started.");
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||||
|
NotificationChannel notificationChannel = new NotificationChannel(
|
||||||
|
"Foreground",
|
||||||
|
"Foreground",
|
||||||
|
NotificationManager.IMPORTANCE_DEFAULT
|
||||||
|
);
|
||||||
|
NotificationManager notificationManager = getSystemService(NotificationManager.class);
|
||||||
|
notificationManager.createNotificationChannel(notificationChannel);
|
||||||
|
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, notificationChannel.getId());
|
||||||
|
builder.setSmallIcon(R.drawable.ic_launcher_foreground);
|
||||||
|
builder.setContentText("Started service in foreground.");
|
||||||
|
|
||||||
|
ServiceCompat.startForeground(this,3784583, builder.build(), ServiceInfo.FOREGROUND_SERVICE_TYPE_LOCATION);
|
||||||
|
}
|
||||||
|
|
||||||
LocationDatabase database = Room
|
LocationDatabase database = Room
|
||||||
.databaseBuilder(getApplicationContext(), LocationDatabase.class, "location")
|
.databaseBuilder(getApplicationContext(), LocationDatabase.class, "location")
|
||||||
.fallbackToDestructiveMigration()
|
.fallbackToDestructiveMigration()
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ public class MainActivity extends AppCompatActivity implements LocationListener,
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
Intent serviceIntent = new Intent(this, LocationLoggingService.class);
|
Intent serviceIntent = new Intent(this, LocationLoggingService.class);
|
||||||
startService(serviceIntent);
|
startForegroundService(serviceIntent);
|
||||||
|
|
||||||
EdgeToEdge.enable(this);
|
EdgeToEdge.enable(this);
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue