我是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"/>
答案 0 :(得分:0)
无法打开堆栈跟踪文件'/data/anr/traces.txt':权限 拒绝
我不知道你在哪里尝试访问traces.txt文件。但是如果它显示权限错误 所以要解决它,让它完全访问:)
在终端
中执行以下命令$adb shell
#cd \data
#chmod 777 anr
请记住,如果您尝试使用实际设备,上述命令可能无效。您需要root。
答案 1 :(得分:0)
这不是你获得当前位置的方式。它只是最后一个已知位置。为了获得当前位置,您需要请求操作系统告知您何时获得新位置(因为它需要未知时间,基于许多事情)并且您可能在,然后使用它。