通过gps获取当前位置(经度和纬度)

时间:2012-06-19 12:46:21

标签: android gps location

我是android.i新手,由模拟器运行应用程序。但总是错误.logcat显示:无法打开堆栈跟踪文件'/data/anr/traces.txt':权限被拒绝

  

WhereAmIActivity.Java

package com.paad.whereami;

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;

public class WhereAmIActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    LocationManager locationManager;
    String context = Context.LOCATION_SERVICE;
    locationManager = (LocationManager)getSystemService(context);//bulid locationmanager

    String provider = LocationManager.KEY_LOCATION_CHANGED;
    Location location = locationManager.getLastKnownLocation(provider);//get lastlocation

    updateWithNewLocation(location);//pass to updatewithnewlocation
}

private void updateWithNewLocation(Location location){//show Location in TextView
    String latLongString;
    TextView myLocationText;
    myLocationText = (TextView)findViewById(R.id.myLocationText);//
    if(location!=null){//
        double lat = location.getLatitude();
        double lng = location.getLongitude();
        latLongString = "Lat:"+lat+"\nLong:"+lng;
    }else{//
        latLongString = "No location found";
    }
    myLocationText.setText("Your Current POsition is:\n"+latLongString);//
}

}

  

使用的许可

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

2 个答案:

答案 0 :(得分:0)

  

无法打开堆栈跟踪文件'/data/anr/traces.txt':权限   拒绝

我不知道你在哪里尝试访问traces.txt文件。但是如果它显示权限错误 所以要解决它,让它完全访问:)

在终端

中执行以下命令
$adb shell
#cd \data
#chmod 777 anr

请记住,如果您尝试使用实际设备,上述命令可能无效。您需要root。

答案 1 :(得分:0)

这不是你获得当前位置的方式。它只是最后一个已知位置。为了获得当前位置,您需要请求操作系统告知您何时获得新位置(因为它需要未知时间,基于许多事情)并且您可能在,然后使用它。