我编写了一个使用 NMEA 数据的应用程序,由 NmeaListener 提供。此应用程序可在以下设备上完美运行:
- 华硕 Nexus 7,安卓 4.1.1
- 三星 Nexus S,安卓 4.1.2
- 索尼爱立信 Xperia Mini,Android 2.3.4
- 索尼爱立信 Xperia X10 Mini,Android 2.1.1
在所有这些设备上,调用 onNmeaReceived() 没有问题。
但在低成本设备上
- 华为/沃达丰 858,安卓 2.2.2
onNmeaReceived() 根本没有被调用。至少 onLocationChanged() 在所有设备上被调用,包括华为。但我不需要位置,我需要 NMEA 数据。
那么,我能做些什么呢?
在此先感谢您的帮助!
public class Main extends Activity implements NmeaListener, LocationListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LocationManager location = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
location.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1l, 1l, this);
location.addNmeaListener(this);
}
@Override
public void onNmeaReceived(long timestamp, String nmea) {
}
@Override
public void onLocationChanged(Location arg0) {
}
@Override
public void onProviderDisabled(String arg0) {
}
@Override
public void onProviderEnabled(String arg0) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}