2011-02-26 74 views
2

我写了一些代码,基本上吐出NMEA句子。代码在froyo上工作,完全按照我的意愿进行。但是,当我进行姜饼升级时,它不再有效。其他人遇到过这个问题吗?NMEAlistener不工作姜饼

我正在使用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 

     } 

    }; 
} 
+0

发布代码,我不认为在GB – Reno 2011-02-26 16:02:57

+0

中的nmea监听器被破坏,请参阅上面的代码。还有一个人提到升级到GingerBread后他们遇到同样的问题。 – Adil 2011-03-07 04:45:26

回答

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更新之前工作),但同样的Nexus One在更新到2.3.3后不再工作。

+0

是的,我在这里没有得到回复后就开始了这个线程。谷歌似乎也没有回应。 – Adil 2011-04-24 20:33:23