안드로이드 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 로 구글링 하시고요.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력