我正在开发一个应用程序,我在屏幕上按下屏幕上的一个按钮,将经纬度上传到服务器,异步任务正在启动并执行操作并将经度和纬度上传到服务器端口。 现在的问题是,GPS无法找到经度和纬度。它在服务器端口上抛出空值。请帮我在下面我的代码被赋予.....提前 感谢GPS没有获取位置更新
class Server extends AsyncTask<String, Integer, String> implements LocationListener{
@Override
protected String doInBackground(String... arg0) {
Looper.myLooper();
Looper.prepare();
for(int i=0;i<9898;i++){
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,this);
sendstring=phonenumber+latitude+longitude+"12345467788";
System.out.println(sendstring+"4532748");
stopUsingGPS();
try {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitNetwork().build();
StrictMode.setThreadPolicy(policy);
Socket socket = null;
try {
int REDIRECTED_SERVERPORT=31997;
InetAddress serverAddr = InetAddress.getByName(serverIpAddress);
socket = new Socket(serverAddr, REDIRECTED_SERVERPORT);
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.println(sendstring);
/*latitude=0.0;
longitude=0.0;*/
}
catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
catch (Exception e) {
}
}
return call1;
}
@Override
public void onLocationChanged(Location location) {
latitude=location.getLatitude();
longitude=location.getLongitude();
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
}
public void stopUsingGPS(){
if(locationManager != null){
locationManager.removeUpdates(this);
}
}
使用此 http://stackoverflow.com/questions/18051958/use-service-to-get-gps-location-android/18052280#18052280 –
@Mayank Saini如何使用而不使用网络提供商? – appukrb
我已经发布了没有网络提供商的答案。它只是使用GPS,如果GPS不可用,则使用网络提供商。我已经在下面发布的答案中删除了网络提供商。 –