android模拟器定位失败,Android-无法在模拟器上获取GPS位置

博主在尝试在Android模拟器上获取GPS位置时遇到问题,代码中使用LocationManager获取位置,但出现NullPointerExeption。已尝试通过DDMS和geo fix设置位置,但依然无效。更新后的代码中,LocationListener的onLocationChanged方法未触发,没有显示Toast和日志输出。寻求帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在尝试在android模拟器上使用gps,我有以下代码:

public class NL extends Activity {

private LocationManager locmgr = null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.nl);

locmgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

Criteria crit = new Criteria();

crit.setAccuracy(Criteria.ACCURACY_FINE);

String provider = locmgr.getBestProvider(crit, true);

Location loc = locmgr.getLastKnownLocation(provider);

Toast msg = Toast.makeText(this, "Lon: " + Double.toString(loc.getLongitude()) + " Lat: " + Double.toString(loc.getLatitude()), Toast.LENGTH_SHORT);

msg.show();

}

}

我在清单中添加了以下行:

并且我已经使用DDMS方法和geo

fix方法设置了gps位置,但是当我运行代码时,我在Toast行上得到了一个N​​ullPointerExeption,可能是因为loc为空。

我不知道错误在哪里…您能帮我吗?

更新!

感谢您的帮助,现在我使用以下代码,但没有收到任何错误,但是它不会在onChangeLocation内运行该代码…它不会运行Toast,并且不会在日志中返回任何消息!

public class NL extends Activity {

private LocationManager locmgr = null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.nl);

locmgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

// Define a listener that responds to location updates

LocationListener locationListener = new LocationListener() {

public void onLocationChanged(Location loc) {

// Called when a new location is found by the network location provider.

Log.i("NOTIFICATION","onLocationChenged Triggered");

Toast msg = Toast.makeText(NetworkLocator.this, "Lon: " + Double.toString(loc.getLongitude()) + " Lat: " + Double.toString(loc.getLatitude()), Toast.LENGTH_SHORT);

msg.show();

}

public void onStatusChanged(String provider, int status, Bundle extras) {}

public void onProviderEnabled(String provider) {}

public void onProviderDisabled(String provider) {}

};

// Register the listener with the Location Manager to receive location updates

locmgr.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);

}

}

谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值