更新2:问题已解决
在我在外面并通过 GPS_PROVIDER 收到信号后,现在我不再有问题可以通过 NETWORK_PROVIDER 获得位置修复了....
我仍然不知道为什么谷歌地图应用程序能够在我这样做之前得到修复,而我的应用程序没有,但现在它可以工作了(即使在重新启动银河选项卡之后),我有点高兴; )
更新:线程标题已更改,请参阅帖子底部的编辑。
我刚刚尝试了本教程(http://www.firstdroid.com/2010/04/29/android-development-using-gps-to-get-current-location-2/)来获取星系上的 GPS 位置标签,但我没有得到任何位置....
我已经尝试使用另一个提供商,但这根本没有帮助(我尝试了 GPS_PROVIDER、NETWORK_PROVIDER、PASSIVE_PROVIDER)。
奇怪的是,使用官方的谷歌地图应用程序,我得到了一个位置。:\
AndroidManifest.xml 中的权限设置如下:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
有人知道为什么我的应用程序没有位置吗?
编辑:
与 GPS 提供商一起,我在外面时得到了修复。但我不明白为什么我没有使用 NETWORK_PROVIDER 或 PASSIVE_PROVIDER 的位置。
如果 GPS 不可用,谷歌地图应用程序使用哪个提供商?
编辑2:
代码(它来自上面的教程,有一些小的改动):
package Firstdroid.Tutorial.Gps;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.Toast;
public class UseGps extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Toast.makeText(getApplicationContext(), "Application started", Toast.LENGTH_SHORT).show();
/* Use the LocationManager class to obtain GPS locations */
LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
// here I choose the location provider:
mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, mlocListener); // <---
}
/* Class My Location Listener */
public class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
loc.getLatitude();
loc.getLongitude();
String Text = "My current location is: " +
"Latitude = " + loc.getLatitude() +
"Longitude = " + loc.getLongitude() + " (PROVIDER: " + loc.getProvider() + ")";
Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderDisabled(String provider) {
Toast.makeText(getApplicationContext(), "Gps Disabled", Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderEnabled(String provider) {
Toast.makeText(getApplicationContext(),
"Gps Enabled", Toast.LENGTH_SHORT).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}/* End of Class MyLocationListener */
}/* End of UseGps Activity */