검색어 : 안드로이드 gps on off 체크
안드로이드 gps 상태 체크
LocationManager.GPS_PROVIDER : GPS 신호를 사용
LocationManager.NETWORK_PROVIDER : 3G , Wi-fi 로 신호
[ Android ] 무선 인터넷과 GPS 상태 확인 법
http://gogorchg.tistory.com/96
//인터넷에 연결돼 있나 확인
ConnectivityManager connect = (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE);
if (
connect.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() ==
NetworkInfo.State.CONNECTED ||
connect.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() ==
NetworkInfo.State.CONNECTED ) {
isInternetEnabled = true;
} else {
isInternetEnabled = false;
}
if (myLocationManager == null) {
myLocationManager = (LocationManager)getSystemService(
Context.LOCATION_SERVICE);
}
// 시스템 > 설정 > 위치 및 보안 > 무선 네트워크 사용 여부 체크.
isInternetGPSEnabled = myLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
// 시스템 > 설정 > 위치 및 보안 > GPS 위성 사용 여부 체크.
isGpsEnabled = myLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
GPS 사용 유/무 확인하기 – LocationManager::isProviderEnabled()
http://plaboratory.org/archives/251
LocationListener의 onProviderDisabled() 메소드를 이용하여 GPS의 사용 유/무 확인은 LocationManager에서 최소 한 번은 위치 정보를 요청했을 때 (requestLocationUpdates()) 만 사용이 가능하다. 그러나 LocationManager의 isProviderEnabled(String provider) 메소드를 이용하면 LocationListener 구현이나 별도로 LocationManager의 위치 정보 요청 없이 바로 GPS 수신 상태를 확인할 수 있다.
2
3 if(!locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
4 // GPS가 꺼져있을 시 앱이 수행할 작업 코드
5 }
isProviderEnabled() 메소드는 리턴값으로, GPS가 켜져있으면 true, 아니면 false를 반환한다.
GPS 사용 유/무 확인하기 – LocationListener::onProviderDisabled()
http://plaboratory.org/archives/245
아임인, 네이버지도 등 GPS를 사용하는 어플리케이션의 경우 현재 디바이스가 GPS 기능을 사용하고 있는지 여부를 확인해서, GPS가 꺼져있는 경우 사용자가 이를 켤 수 있도록 유도해야한다. (물론, 사용자 선택에 따라 GPS를 사용하지 않고도 이용이 되도록 한다.)
어플리케이션에서 직접적으로 GPS를 켤 수 있게 설정은 하지 못하므로 위와 같이 ‘설정’ 버튼을 누르면 ‘위치 설정’ 으로 가서 사용자로 하여금 켤 수 있도록 해야한다.
2 public void onProviderDisabled(String provider) {
3 new AlertDialog.Builder(MainActivity.this)
4 .setMessage(“GPS가 꺼져있습니다.\n ‘위치 서비스’에서 ‘Google 위치 서비스’를 체크해주세요”)
5 .setPositiveButton(“설정”,new DialogInterface.OnClickListener() {
6 // 설정 창을 띄운다
7 Intent intent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
8 startActivity(intent);
9 });
10 .setNegativeButton(“취소”, null).show();
11 }
LocationListener를 구현할 때, onProviderDisabled() 메소드를 오버라이드를 해주면 된다. onProviderDisabled() 메소드는 프로바이더가 꺼져있을 때, 즉 디바이스에서 GPS 설정이 안되있을 경우 호출이 되는데, 위와 같이 메소드가 호출됬을 때 AlertDialog를 띄어줘서 ‘설정’ 버튼을 누르면 인텐트로 설정 액티비티를 호출해주면 된다.
지도를 비롯 위치정보를 이용한 서비스 개발시 유용한 팁 한가지 알려드립니다.
그것은 GPS 연결여부를 체크하여 미연결시 연결설정 화면으로 이동시켜 주는 기능입니다.
소스는 참 간단하죠^^
public void onCreate(Bundle savedInstanceState) {
...
String context = Context.LOCATION_SERVICE;
locationManager = (LocationManager)getSystemService(context);
if(!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
alertCheckGPS();
}
...
}
private void alertCheckGPS() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Your GPS is disabled! Would you like to enable it?")
.setCancelable(false)
.setPositiveButton("Enable GPS",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
moveConfigGPS();
}
})
.setNegativeButton("Do nothing",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
// GPS 설정화면으로 이동
private void moveConfigGPS() {
Intent gpsOptionsIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(gpsOptionsIntent);
}
2010/10/06 - [Andro. Dev] - 안드로이드 GPS 상태체크
2010/09/08 - [Andro. Dev] - 안드로이드 실시간 네트워크 확인하는 방법 - ConnectivityManager
2010/09/09 - [Andro. Dev] - 안드로이드 getLocalActivityManager & Dialog 사용시 에러 해결방법
2010/09/06 - [Andro. Etc] - Manifest 파일내 permission 정보
2010/09/01 - [Andro. Dev] - 안드로이드 Map ApiKey 발급하는 방법
2010/09/01 - [Andro. Dev] - 안드로이드 MapView에서 줌 배율 문제
2010/10/06 - [Andro. Dev] - 안드로이드 위치 주소정보 가져오는 방법
http://jinmanp.tistory.com/entry/Android-GPS-%EC%84%A4%EC%A0%95-%EC%B2%B4%ED%81%AC
지도 서비스 이용시 GPS 설정을 하지 않으면 현재 위치 기능을 이용할 수 없다.
앱 실행시 GPS 설정이 되어 있지 않으면 설정 화면으로 이동하게 해주는 코드..
해당 함수를 원하는 위치에서 콜 해주면 된다.
앱에서 자동으로 설정해주면 더 좋겠지만 개인정보 때문에 구글에서 막아둔 것 같다
//GPS 설정 체크
private boolean chkGpsService() {
String gps = android.provider.Settings.Secure.getString(getContentResolver(), android.provider.Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
Log.d(gps, "aaaa");
if (!(gps.matches(".*gps.*") && gps.matches(".*network.*"))) {
// GPS OFF 일때 Dialog 표시
AlertDialog.Builder gsDialog = new AlertDialog.Builder(this);
gsDialog.setTitle("위치 서비스 설정");
gsDialog.setMessage("무선 네트워크 사용, GPS 위성 사용을 모두 체크하셔야 정확한 위치 서비스가 가능합니다.\n위치 서비스 기능을 설정하시겠습니까?");
gsDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// GPS설정 화면으로 이동
Intent intent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
intent.addCategory(Intent.CATEGORY_DEFAULT);
startActivity(intent);
}
})
.setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
return;
}
}).create().show();
return false;
} else {
return true;
}
}
'차근차근 > Android' 카테고리의 다른 글
하이브리드앱 프로젝트 이야기 첫번째 - Webview 이용하기 (0) | 2015.01.13 |
---|---|
하이브리드 앱 gps연동 (0) | 2015.01.08 |
위치정보를 알아오는 간단한 예제(gps) -실행됨 (0) | 2015.01.08 |
현재 연결은 사용자의 호스트 시스템의 소프트웨어의 의해 중단되었습니다 (0) | 2015.01.08 |
하이브리드앱 gps 설정 (0) | 2015.01.07 |