다른 클래스의 메소드 호출하기 질문입니다.
조회수 7048회
아래의 GPS확인하는 메소드를 MainActivity에서 호출하여 사용을 하려고 하는데 사용을 못하고 튕겨 나오네요. 고수님들의 조언이 필요합니다.
===GPS확인 클래스===
public class CheckGPS extends Activity{
public CheckGPS() {
}
public boolean chkGpsService() {
//GPS가 켜져 있는지 확인함.
String 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();
}
return false;
}
}
===MainActivity==== strong text protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
//문제의 부분입니다. 사용을 못하고 있습니다.
CheckGPS gps = new CheckGPS();
gps.chkGpsService();
Toast.makeText(getApplicationContext(), "정보를 읽어오는 중입니다.", Toast.LENGTH_LONG).show();
intent = new Intent(this, CurrentLocatinActivity.class); //현재 위치 화면 띄우기 위해 인텐트 실행.
startActivity(intent);
}
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
activity를 상속 받았다고해도 저렇게 호출하는 건 좀.....
MainActivity에서
gps.chkGpsService(this)
이렇게 호출하고
public class CheckGPS { public boolean chkGpsService(Activity activity) { //GPS가 켜져 있는지 확인함. String gpsEnabled = android.provider.Settings.Secure.getString(activity.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED); if (!(gpsEnabled.matches(".*gps.*") && gpsEnabled.matches(".*network.*"))) { //gps가 사용가능한 상태가 아니면 new AlertDialog.Builder(activity).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); activity.startActivity(intent); } }).setNegativeButton("닫기", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { } }).create().show(); return false; } return true; } }
이런 식으로 하는 게 그나마 수정이 적겠네요.
근데 보통은 LocationUtil 같은 클래스 만들어서 gps 가 켜져있는지 확인해주는 함수를 만드는 게 더 깔끔하지 않을까요?
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력