Android Fake GPS App 차단
Android Fake GPS App 차단하는 방법에 대해 알아보도록 하겠습니다.
Google Play Store 에 “fake gps”라고 검색을 하면 무수히 많은 fake gps 앱이 나옵니다.
Fake GPS App 은 안드로이드의 ACCESS_MOCK_LOCATION 권한을 얻어 구현을 하게 됩니다.
오늘은 Android에서 Fake GPS App 차단하는 게 목적이니 Fake GPS에 대해선 다음에 자세히 다루 도록하겠습니다.
Android에서 위치 정보는 LocationManager 활용하여 가져오게 됩니다.
참고 : https://developer.android.com/reference/android/location/LocationManager.html
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {
@Override public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override public void onProviderEnabled(String provider) {
}
@Override public void onProviderDisabled(String provider) {
}
@Override public void onLocationChanged(Location location) {
Log.d("Location", location.toString());
}
};
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
위의 소스 코드를 보시면 “onLocationChanged”에서 Location 객체에 위치 정보를 담게 되고 개발자는 이걸 활용하여 위치정보를 가져오게 됩니다.
Location 객체에는 다양한 메서드가 있는데.
isFromMockProvider()를 사용하면 이 가져온 위치정보가 모의 위치인지 아닌지를 알 수가 있습니다.
Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2 && location != null && location.isFromMockProvider();
Ex)
public static boolean isMockLocation(Location location) {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2 && location != null && location.isFromMockProvider();
}
Ex처럼 하여 가져온 위치정보가 모의 위치인지 아닌지 알 수 있습니다.
@datagurukr, welcome and congratulations on making your first post! I gave you a $.02 vote! If you would be so kind to give me a follow in return that would be awesome!
Congratulations @datagurukr! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!