I'm trying to call my latitude & longitude data of the phone every 5 seconds. This code worked well for Android 9 and 10, but it is not working for 11 and 12. The initial location is updated but the following location is not updated at all. FINE and COARSE location permissions are requested. What could be the problem?
if (!isGPSEnabled && !isNetworkEnabled) {
lat = 0;
lon = 0;
} else {
this.isGetLocation = true;
// GPS
if (isGPSEnabled) {
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
0,
0, this);
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(location != null && location.getTime() > Calendar.getInstance().getTimeInMillis() - 5000) {
gpsUse = true;
}
if (location != null) {
lat = location.getLatitude();
lon = location.getLongitude();
}
}
}
if (isNetworkEnabled) {
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
0,
0, this);
if (locationManager != null) {
location4 = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if(location4 != null && location4.getTime() > Calendar.getInstance().getTimeInMillis() - 5000) {
networkUse = true;
}
if (location4 != null) {
lat = location4.getLatitude();
lon = location4.getLongitude();
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
- I added the code of AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.HanyangHCI.crc_test">
<!-- <uses-permission android:name="android.permission.INTERNET"/>-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="29" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_SERVICE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />-->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission
android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_hci"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:requestLegacyExternalStorage="true"
tools:ignore="GoogleAppIndexingWarning">
<activity android:name=".MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name = ".Collecting"
android:screenOrientation="portrait" />
<service android:name=".Collecting"
android:foregroundServiceType="location"/>
<activity android:name=".Survay"
android:screenOrientation="portrait"/>
<activity android:name=".Survay2"
android:screenOrientation="portrait"/>
<activity android:name=".PopUp"
android:theme="@android:style/Theme.Dialog"
android:excludeFromRecents="true" />
<service android:name=".BackGroundCollecting"
android:enabled="true"
android:stopWithTask="false"
android:foregroundServiceType="location">
<intent-filter>
<action android:name="com.HanyangHCI.crc_test.BackGroundCollecting"/>
</intent-filter>
</service>
<service android:name=".GPSTracker"
android:foregroundServiceType="location">
<intent-filter>
<action android:name="com.HanyangHCI.crc_test.GPSTracker"/>
</intent-filter>
</service>
<receiver android:name="com.HanyangHCI.crc_test.RestartService" android:process=":remote"/>
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.hanyangHCI.crc_test.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
</application>
</manifest>