안드로이드 GPS 설정 화면에서 GPS사용 체크 후 뒤로가기 버튼을 클릭 후 액티비티 재실행을 하려면 어떻게 해야하나요?

조회수 5563회

아래와 같은 소스에서 GPS 설정 다이얼로그화면 이동 후 GPS사용 체크를 한 후 뒤로가기 버튼을 클릭하면
intent = new Intent(this, CurrentLocatinActivity.class);

startActivity(intent);

위에 있는 인텐트를 재실행하게 하고 싶습니다.

public class MainActivity extends AppCompatActivity {

String gpsEnabled;

Intent intent;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    chkGpsService();
}

private boolean chkGpsService() {

    //GPS가 켜져 있는지 확인함.
    gpsEnabled = android.provider.Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);

    if (!(gpsEnabled.matches(".*gps.*") && gpsEnabled.matches(".*network.*"))) {
        //gps가 사용가능한 상태가 아니면
        new AlertDialog.Builder(this).setTitle("GPS 설정").setMessage("GPS가 꺼져 있습니다. \nGPS를 활성화 하시겠습니까?").setPositiveButton("GPS 켜기", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int which) {
                //GPS 설정 화면을 띄움
                Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                startActivity(intent);
            }
        }).setNegativeButton("닫기", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {

            }
        }).create().show();

    }else if((gpsEnabled.matches(".*gps.*") && gpsEnabled.matches(".*network.*"))) {
        Toast.makeText(getApplicationContext(), "정보를 읽어오는 중입니다.", Toast.LENGTH_LONG).show();
        intent = new Intent(this, CurrentLocatinActivity.class); //현재 위치 화면 띄우기 위해 인텐트 실행.
        startActivity(intent);
    }
    return false;
}

}

1 답변

  • Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
    startActivity(intent);
    

    Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
    startActivityForResult(intent, 1);
    

    로 호출하세요. 나머지는 onActivityResult 로 구글링 하시고요.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)