如何从GPS设置窗口返回我的活动

Cha*_*dra 12 gps android

我在我的Activity中有一个问题,它可以控制到Android移动GPS设置让用户打开/关闭GPS,但我无法回溯到我的活动.当我按下后退按钮时,它直接进入移动设备的主页,而不是从我向设置发送信号的地方返回我的活动.任何人都可以告诉我解决方案.

if(!lm.isProviderEnabled(LocationManager.GPS_PROVIDER )) { 
    startActivityForResult(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS), 1);
Run Code Online (Sandbox Code Playgroud)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.e("","OnActivity Result...");
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == GPS_LOC) {
       switch (requestCode) {
          case GPS_LOC:
              //super.onCreate(inst);
              super.onResume();
              //super.finish();
           break;
        }
     }  
 }
Run Code Online (Sandbox Code Playgroud)

dha*_*g23 19

适合我.您确定在清单中设置了ACCESS_FINE_LOCATION权限吗?你确定正在调用startActivityForResult()吗?

另外,什么是GPS_LOC?

这是我的代码:

public class main extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        findViewById(R.id.button1).setOnClickListener( new OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivityForResult(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS), 1);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == 1) {
           switch (requestCode) {
              case 1:
               break;
            }
         }  
     }
}
Run Code Online (Sandbox Code Playgroud)

  • btw resultCode始终为0,无论用户是否启用了位置 (9认同)
  • 我遇到了同样的问题,这是由我将清单中的noHistory标志设置为true引起的,所以当我启动GPS设置时,我的活动已从历史记录中删除.也许类似的事情会发生在你身上?似乎在onStop中重新启动并不是一个好主意......您仍然可以使用"intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);"清除历史记录中的活动. (5认同)
  • @hasnain_ahmad事实表明你不需要resultCode,因为你可以使用这样的LocationManager类检测用户启用的位置服务:locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)或locationManager.isProviderEnabled(LocationManager.GPS_NETWORK) (3认同)