gpt4 book ai didi

android - 检查 GPS 可访问性

转载 作者:行者123 更新时间:2023-11-30 04:13:30 25 4
gpt4 key购买 nike

我想检查设备是否从卫星获取数据。如果我得到我当前的位置,那么我会做一些事情。否则,如果我还没有任何坐标,我想 toast 给我留言。我怎么知道我是否已经得到坐标?

GeoPoint h = null;
double latitude = 10, longitude = 10;
public void onClick(View v)
{
switch (v.getId())
{
case R.id.get_GPS:
final LocationManager manager = (LocationManager) getSystemService( Context.LOCATION_SERVICE );
if(isInternetOn() && manager.isProviderEnabled(LocationManager.GPS_PROVIDER))
{
//I want here to check, if I get latitude and longitude values, which differ from 10 x 10, I go to my map, otherwise I say, that there's no information received from satellite.
/*
h = new GeoPoint((int) (latitude * 1000000), (int) (longitude * 1000000));

if(h.getLatitudeE6()==h.getLongitudeE6() && h.getLongitudeE6()==10000000)
{
Toast.makeText(this, "No information received from satellite yet.", Toast.LENGTH_LONG).show();
break;
}
*/
Intent i = new Intent (this,getGPS.class);
startActivity(i);
}
else
{
if(!isInternetOn() && !manager.isProviderEnabled( LocationManager.GPS_PROVIDER))
{
buildAlertMessageNoGpsNoInternet();
break;
}

if(!isInternetOn())
{
buildAlertMessageNoInternet();
break;
}
if(!manager.isProviderEnabled( LocationManager.GPS_PROVIDER))
{
buildAlertMessageNoGps();
break;
}
}

break;
case R.id.about_button:
Intent j = new Intent(this, About.class);
startActivity(j);
break;
case R.id.exit_button:
this.moveTaskToBack(true);
break;
}
}

Sam,我在“if”中得到空指针异常:

if(manager.isProviderEnabled(LocationManager.GPS_PROVIDER))
{

Location location = manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

/*Here ->*/if(location.getTime() > ((Calendar.getInstance().getTimeInMillis()) - 10000))
{
Intent i = new Intent (this, getGPS.class);
startActivity(i);
}

else
{
// Wait for new location
LocationListener locationListener = new myLocationListener();
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,locationListener);
}
}

日志

05-05 11:42:49.444: E/AndroidRuntime(300): java.lang.NullPointerException

最佳答案

我会尝试类似的方法:

public class Example extends Activity {

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

LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location = manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

if(location.getTime() > Calendar.getInstance().getTimeInMillis() - 2 * 60 * 1000) {
// Do something with the recent location fix
}
else {
// Wait for new location
LocationListener locationListener = new myLocationListener();
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,locationListener);
}
}

private class myLocationListener implements LocationListener {
public void onLocationChanged(Location location) {
if (location != null) {
Log.v("Location Changed", location.getLatitude() + " " + location.getLongitude());
// Do something with current location
}
}

// Must implement missing functions!
}
}

添加

如果此处的位置为空,则可能意味着无论出于何种原因都没有最后已知的位置。简单修复:

if(location != null && location.getTime() > ((Calendar.getInstance().getTimeInMillis()) - 10000))

关于android - 检查 GPS 可访问性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10437472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com