添加纬度和经度给电子邮件安卓

时间:2014-10-16 02:58:26

标签: android location

基本上,我试图获得当前的Latitude&设备的经度,将其存储在变量中,并使用StringBuilder将该变量写入字符串。目前,变量返回null,我无法弄清楚原因。

任何人都可以看到我出错的地方吗?我已经在Manifest中设置了权限,我的代码编译得很好。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
...
LocationListener locListener = new MyLocationListener();
        LocationManager locmanager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        locmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0, locListener);
 ...
}
public class MyLocationListener implements LocationListener{

        @Override
        public void onLocationChanged(Location location) {
            //Retrieve Latitude
            location.getLatitude();
            //retirieve longitude
            location.getLongitude();
            System.out.println(Latitude);
            System.out.println(Longitude);
            Latitude = location.getLatitude();
            Longitude = location.getLongitude();

        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {

        }

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

        }

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

        }
    }

1 个答案:

答案 0 :(得分:2)

您无需致电

location.getLatitude();
location.getLongitude();

获取位置。这些方法只返回已存储在位置变量中的纬度和经度值。

目前,您正在打印纬度和经度变量,然后再为它们指定实际坐标值。

试试这个:

@Override 
public void onLocationChanged(Location location) { 
    Latitude = location.getLatitude(); //assuming Latitude and Longitude are of type double
    Longitude = location.getLongitude(); 
    System.out.println(Latitude);
    System.out.println(Longitude);


}