我已经定义了一个按下按钮获取当前位置的方法,当我第一次按下它时,它工作了。但是它没有任何回报给我。并且没有异常抛出
public class getLoc extends Activity{
private Button btn;
private TextView tv;
private LocationManager locm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv=(TextView) findViewById(R.id.location_text);
btn=(Button) findViewById(R.id.btn_location);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
locm=(LocationManager) getLoc.this.getSystemService(Context.LOCATION_SERVICE);
locm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new myLocationListener() );
}
});
}
protected void getCurrentLocation(){
Location loc=locm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Toast.makeText(getApplication(), String.valueOf(loc.getLatitude()), Toast.LENGTH_SHORT).show();
System.out.println(loc.getLatitude());
System.out.println(loc.getLongitude());
答案 0 :(得分:0)
您必须在清单文件中包含地图api库和互联网权限
<uses-library android:name="com.google.android.maps" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
你有没有提到这些权限?
答案 1 :(得分:0)
在myLocationListener类
中你应该覆盖onLocationChanged方法
public void onLocationChanged(Location location) { Toast.makeText(getApplication(), String.valueOf(location.getLatitude()), Toast.LENGTH_SHORT).show(); System.out.println(location.getLatitude()); System.out.println(location.getLongitude()); }
答案 2 :(得分:0)
您是否尝试在再次发送之前修改Eclipse中的位置?如果多次发送相同的位置,模拟器将不会触发位置事件。
此外,您必须在设备上启用模拟位置(在开发选项中的某个位置)和清单:
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission>