아래와 같은 소스를 써서 현재 좌표를 읽어오는데 디자이어, 갤s, 갤탭에서 테스트를 해봤는데
디자이어에선 좌표를 잘 읽어오는데 갤럭시들만 안읽혀지더라구요(gps/network 둘다 안되네요..)
private LocationListenerImpl locationListener = new LocationListenerImpl();
private LocationManager mLocationManager;
private String mProvider = "";
private void initLocationManager(){
mLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
List<String> providers = mLocationManager.getProviders(true);
boolean available = false;
for(int i=0; i<providers.size(); i++){
if(providers.get(i).equals("gps") || providers.get(i).equals("network")){
available = true;
break;
}
}
if(!available){
AlertDialog.Builder alert = new AlertDialog.Builder(PlaceTab.this);
alert.setTitle(R.string.alert_title_notify);
alert.setMessage(R.string.alert_msg_gpsinfo);
alert.setCancelable(false);
alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which){
dialog.dismiss();
Intent gpsOptionsIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(gpsOptionsIntent);
finish();
}
});
alert.show();
return;
}
else{
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
mProvider = mLocationManager.getBestProvider(criteria, true);
}
mLocationManager.requestLocationUpdates(mProvider, 0, 0, locationListener);
}
class LocationListenerImpl implements LocationListener{
@Override
public void onLocationChanged(Location location){
mLocationManager.removeUpdates(this);
curLat = location.getLatitude();
curLng = location.getLongitude();
}
@Override
public void onProviderDisabled(String provider){}
@Override
public void onProviderEnabled(String provider){}
@Override
public void onStatusChanged(String provider, int status, Bundle extras){}
}
디자이어에서 잘되는거보면 잘못된 소스 같지는 않은데... 이상하게 삼성기기들만 안되니 답답합니다..
디버깅을 해보면 onLocationChanged 로 안들어가집니다. 디자이어에선 물론 잘되구요..
혹시 삼성기기들로 좌표가 잘 읽혀지시는 분들이 계시면 도움 좀 부탁드리겠습니다 ㅠ