为结果启动设置活动

Ego*_*gor 6 android android-intent android-location

在我的应用程序中,我正在检查用户设备上是否启用了GPS,如果没有,我想将他发送到设置以让他打开它.

Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent, LocationHelper.LOCATION_SETTINGS_REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)

用户关闭"设置"屏幕后,我会在内部执行操作onActivityResult().

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == LocationHelper.LOCATION_SETTINGS_REQUEST_CODE) {
        LogUtils.d("onActivityResult from settings");
        fetchCurrentLocation();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,onActivityResult()不会被调用.我做错了什么或这种做法一般不起作用?提前致谢.

小智 5

lauch的设定意图:

Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

并在onResume方法中获取当前位置:

public void onResume(){
    super.onResume();
    if(isGPSEnabled){
         fetchCurrentLocation();
}
}
Run Code Online (Sandbox Code Playgroud)

从设置屏幕退回后,您的onResume方法将被调用,在这里您可以获取您的位置.


Jam*_*aaz -2

您是否在清单中定义了 ACCESS_FINE_LOCATION 权限?

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
Run Code Online (Sandbox Code Playgroud)