Night Knight
Lurker
I'm currently struggling with being compliant with new google play policies regarding localization permission.
I developed an app to call emergency numbers from (almost) any country in the world and I have a feature that allows the user to click on a button to locate himself and display the corresponding emergency numbers of the country he is in.
My issue is that Google sent me an email to reject my app because I quote : "Feature does not meet requirements for background location access".
The thing is : I do not ask for background location access, so I do not know what to do... I ask for "ACCESS_FINE_LOCATION" and I start a service declared as foreground.
Here is my manifest :
And the code plugged to the localization button :
I asked for more information to Google, and the only answer was :
"We have re-reviewed your app, but your declared feature still does not meet the requirements to access location in the background because of the following reason(s):
Users may not expect the app to access their location in the background
It is possible to deliver a similar experience without access to location in the background"
Thank you very much Google for being more explicit...
I saw afterwards that I was not stoping the service in the onPause method in the main activity, so I added this and tried to publish it again, but same error, apparently I am still asking a background service permission, without currently asking it ...
So I'm pretty sure I'm missing something obvious somewhere, but since I have no idea where to look at, I really need a new pair of eyes on it... I am now losing faith on this app's future...
Thanks a lot by advance !
I developed an app to call emergency numbers from (almost) any country in the world and I have a feature that allows the user to click on a button to locate himself and display the corresponding emergency numbers of the country he is in.
My issue is that Google sent me an email to reject my app because I quote : "Feature does not meet requirements for background location access".
The thing is : I do not ask for background location access, so I do not know what to do... I ask for "ACCESS_FINE_LOCATION" and I start a service declared as foreground.
Here is my manifest :
Code:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<application
android:allowBackup="true"
android:icon="@drawable/er"
android:label="@string/app_name"
android:roundIcon="@drawable/er"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:windowSoftInputMode="adjustPan"
android:screenOrientation="portrait">
<service
android:name=".LocationService"
android:enabled="true"
android:description="@string/emergency_localization"
android:foregroundServiceType="location"
android:icon="@drawable/er"
android:label="@string/emergency_localization_label"
android:permission="android.permission.FOREGROUND_SERVICE"/>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-feature
android:name="android.location.Geocoder"
android:required="false" />
And the code plugged to the localization button :
Code:
findMeBtn.setOnClickListener(v -> {
if (!PermissionNeeded()) {
DisplayIcon(true);
locationIntent = new Intent(getApplicationContext(), LocationService.class);
startService((locationIntent));
}
});
I asked for more information to Google, and the only answer was :
"We have re-reviewed your app, but your declared feature still does not meet the requirements to access location in the background because of the following reason(s):
Users may not expect the app to access their location in the background
It is possible to deliver a similar experience without access to location in the background"
Thank you very much Google for being more explicit...
I saw afterwards that I was not stoping the service in the onPause method in the main activity, so I added this and tried to publish it again, but same error, apparently I am still asking a background service permission, without currently asking it ...
Code:
@Override
public void onPause() {
super.onPause();
if (locationIntent != null) stopService(locationIntent);
}
@Override
public void onDestroy() {
super.onDestroy();
unregisterReceiver(broadcastReceiver);
if (locationIntent != null) stopService(locationIntent);
}
So I'm pretty sure I'm missing something obvious somewhere, but since I have no idea where to look at, I really need a new pair of eyes on it... I am now losing faith on this app's future...
Thanks a lot by advance !
Last edited: