2011-05-16 76 views
1

我只想使用GPS获取位置。我不想在这个应用程序中使用互联网和GPRS。我的代码在下面;告诉我我在哪里错了。如何在没有互联网的情况下在Android中获取位置,仅使用GPS

代码:

package com.getlocation; 

import android.app.Activity; 
import android.content.Context; 
import android.location.Criteria; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.Toast; 

public class UseGps extends Activity { 
    /** Called when the activity is first created. */ 
    private String provider; 
    LocationManager locationManager; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); /* 
             * Use the LocationManager class to 
             * obtain GPS locations 
             */ 
     locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     LocationListener mlocListener = new MyLocationListener(); 
     Criteria criteria = new Criteria(); 
      criteria.setAccuracy(Criteria.ACCURACY_COARSE); 
      criteria.setAccuracy(Criteria.ACCURACY_FINE); 
      provider = locationManager.getBestProvider(criteria, true); 
      locationManager.requestLocationUpdates(provider, 61000, 250, 
       mlocListener); 
    } /* Class My Location Listener */ 
public class MyLocationListener implements LocationListener { 
    @Override 
    public void onLocationChanged(Location loc) { 
     loc.getLatitude(); 
     loc.getLongitude(); 
     String Text = "My current location is: " + "Latitude = " 
       + loc.getLatitude() + "Longitude = " + loc.getLongitude(); 
     Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT) 
       .show(); 
     Log.d("TAG", "Starting.."); 
    } 

    @Override 
    public void onProviderDisabled(String provider) { 
     Toast.makeText(getApplicationContext(), "Gps Disabled", 
       Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onProviderEnabled(String provider) { 
     Toast.makeText(getApplicationContext(), "Gps Enabled", 
       Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) { 
    } 
}/* End of Class MyLocationListener */ 
}/* End of UseGps Activity */ 
+2

没有downvoting。这是一个类似的职位,接受的答案:http://stackoverflow.com/questions/4905385/getting-the-current-gps-location-on-android – Mudassir 2011-05-16 05:46:42

回答

2

使用这个只有GPS提供商,它不需要GPRS。

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener); 

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> 

您需要将权限放在清单文件中。

+0

你确定它没有网络吗? – PankajAndroid 2013-11-19 09:08:06

+0

是GPS是基于卫星的,不需要互联网工作。 – PravinCG 2013-11-19 13:41:46

1

你不需要互联网连接到您的手机上运行的GPS系统。 GPS时间同步不需要互联网连接。但是,如果您想在Google地图上显示当前位置,则可能需要互联网连接。

来找你代码一切看起来都很好。

在您的活动中试用此代码。

LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 

LocationListener mlocListener = new YourLocationListener(getApplicationContext(), mobileNo, deviceId); 
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,mlocListener); 

,包括这在AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_GPS" /> 
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" /> 
+0

我不能现在仍然得到..tell我正确的答案请.. – 2011-05-16 06:23:09

+0

@Sam_k我可以得到当前的研究生和毕业生没有互联网连接? – CoronaPintu 2013-09-13 12:34:35

+0

@PintuCorna你必须使用GPS为此提供 – 2013-09-21 08:47:27

相关问题