NMEAlistener没有在姜饼工作

时间:2011-02-26 14:48:10

标签: android

我写了一些基本上吐出NMEA句子的代码。代码在froyo上工作,完全符合我的要求。现在然而,当我获得姜饼升级时,它已不再有效。还有其他人有这个问题吗?

我正在使用Nexus One,如果你们需要,我会发布一些代码。

由于

抱歉,我最近很忙。最后是代码:

public class GPSTest extends Activity {
    TextView mTextView;
    Button mStartButton, mStopButton;
    LocationManager mLocationManager;
    boolean isRegistered;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mTextView = (TextView) findViewById(R.id.mTextView);
        mStartButton = (Button) findViewById(R.id.Button01);
        mStopButton = (Button) findViewById(R.id.Button02);

        mStartButton.setOnClickListener(mButtonListener);
        mStopButton.setOnClickListener(mButtonListener);

        mLocationManager = (LocationManager) this.getSystemService(LOCATION_SERVICE);

    }
    void registerListeners(){
        if(!isRegistered){
            mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0 , 0, mLocationListener);
            mLocationManager.addNmeaListener(mListener);

            isRegistered=true;
        }
    }
    void deregisterListeners(){
        if (isRegistered){
            mLocationManager.removeUpdates(mLocationListener);
            mLocationManager.removeNmeaListener(mListener);

            isRegistered=false;
        }
    }
    OnClickListener mButtonListener = new OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if (v==mStartButton){
                registerListeners();
            }else{
                deregisterListeners();
            }

        }

    };
    @Override
    protected void onPause(){
        super.onPause();
        deregisterListeners();
    }
    @Override
    protected void onResume(){
        super.onResume();
        registerListeners();
    }
    NmeaListener mListener = new NmeaListener(){

        @Override
        public void onNmeaReceived(long timestamp, String nmea) {
            // TODO Auto-generated method stub
            mTextView.append("\n"+nmea);
        }

    };
    LocationListener mLocationListener = new LocationListener(){

        @Override
        public void onLocationChanged(Location location) {
            // TODO Auto-generated method stub
            ;
        }

        @Override
        public void onProviderDisabled(String provider) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProviderEnabled(String provider) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
            // TODO Auto-generated method stub

        }

    };
}

1 个答案:

答案 0 :(得分:2)

在一些手机上的后Froyo实施中记录的错误(Nexus One我可以确认,Xoom传闻似乎没问题)。没有听过使用Nexus S的人,但听起来他们没事。

有关详细信息,请参阅http://code.google.com/p/android/issues/detail?id=15500

编辑:试图捅谷歌的人,看看是否可以找到一些澄清。

编辑2:哦是的,确认2.2有效(HTC Incredible,Nexus One在2.3更新之前工作),但更新到2.3.3后,相同的Nexus One不再有效。