【发布时间】:2014-09-24 12:56:09
【问题描述】:
我受困于经纬度:|
我在做什么:我正在使用 LocationManager 来获取我的当前位置(我制作了对话框......它显示我在加载时加载屏幕
public void onLocationChanged(Location loc)
但是..我设置了一个日志..或者只是一个简单的消息..我从来没有收到这个函数的请求。
但是,如果我使用的是 googlemap 片段 .. 我按下顶部右侧的按钮,它会立即显示在我当前的位置.. 在这种情况下如何正确?如何获取当前位置(经纬度)?
我只是卡住了:(
public class getLocation implements LocationListener
{
public getLocation()
{
dialog = new ProgressDialog(MainActivity.this);
dialog.setMessage("Loading GPS Information");
dialog.setCancelable(true);
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dialog.show();
lm = (LocationManager) getSystemService(LOCATION_SERVICE);
new Thread() {
public void run() {
runOnUiThread(new Runnable() {
public void run() {
boolean enabled = lm
.isProviderEnabled(LocationManager.GPS_PROVIDER);
if (!enabled) {
Toast.makeText(MainActivity.this, "GPS NOT ENABLED" , Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);
} else{
Toast.makeText(MainActivity.this, "GPS ENABLED" , Toast.LENGTH_SHORT).show();
if(lm.getLastKnownLocation(LocationManager.GPS_PROVIDER) != null){
Toast.makeText(MainActivity.this, "LAST LOCATION " , Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(MainActivity.this, "Last location unknown ", Toast.LENGTH_SHORT).show();
}
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,
0, getLocation.this);
}
}
});
}
}.start();
handler = new Handler() {
public void handleMessage(android.os.Message msg) {
dialog.dismiss();
};
};
}
@Override
public void onLocationChanged(Location loc) {
// TODO Auto-generated method stub =
if(loc!=null){
if(apress){
at.setText("Lat = "+loc.getLatitude()+" | Long = "+loc.getLongitude());
apress=false;
Toast.makeText(MainActivity.this, "OnLocationChanged GPS" , Toast.LENGTH_SHORT).show();
latG=loc.getLatitude();
longG=loc.getLongitude();
showA.setEnabled(true);
handler.sendEmptyMessage(0);
}
}else{
Toast.makeText(MainActivity.this, "OnLocationChanged GPS Location - null" , Toast.LENGTH_SHORT).show();
}
}
@Override
public void onProviderDisabled(String arg0) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "ON PROVIDER DISABLED "+arg0 , Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderEnabled(String arg0) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "ON PROVIDER ENABLED "+arg0 , Toast.LENGTH_SHORT).show();
}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
Toast.makeText(MainActivity.this, "ON STATUS CHANGED "+arg0 , Toast.LENGTH_SHORT).show();
}
}
在这个函数中
public void onLocationChanged(Location loc) {
我从来没有得到正确的呼叫.. 如果我在这里添加 Log.e( 或其他东西) 这意味着它永远不会显示:(
【问题讨论】:
-
你能添加你所有的类代码
-
嘿,彼得!如果我正确理解了你的问题。您需要从 Fragment 中删除“显示位置按钮”。第二件事你想知道你的经纬度
-
@TarunSharma 不,我想得到 cur LAT 和 LONG 代码不在地图上,我只是不明白为什么它不工作,但在地图上“显示位置按钮”正如你所说 - 这个按钮总是显示我在哪里 :((((( 我想通过代码得到它
-
经纬度得到“0.0”吗?
-
@BatuhanC 是的,总是......它在非洲附近 o_O 我认为它只是一个中间
标签: android google-maps gps location