Я понимаю, что вы имеете в виду, и у меня была такая же проблема несколько дней назад.
В вашем случае вы не должны использовать onActivityResult, так как действие настройки источника местоположения никогда не установит код результата.
Чтобы достичь того, чего вы хотите, вы должны сделать что-то в вашем методе onResume (). После завершения действия по настройке источника местоположения GPS будет вызван ваш метод onResume (). Так что вы просто включите или выключите GPS в onResume.
Обратите внимание, onResume будет вызываться после onCreate при первом запуске приложения. Поэтому вы должны решить, что onResume вызывается после onCreate или после настройки GPS.
Ниже приведен пример кода
void onCreate(){
//do something
Intent intent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);}
void onResume(){
if (firstTime){
// do something
firstTime = false;
}
else{ // it's from GPS setting activity
//check your gps again with your logic here
}
}