LocationManager GPS_PROVIDER无法在设备上运行

时间:2014-09-10 07:39:00

标签: android gps location

请告诉我如何从GPS_PROVIDER获取lat和long。 我的代码

TextView curb,cura ;
Button b,a;
LocationManager lm;
boolean apres=false;
boolean bpresss=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
     LinearLayout l = new LinearLayout(this);
     l.setOrientation(LinearLayout.VERTICAL);
     cura = new TextView (this);
     a = new Button(this);
     a.setText("GPS get lat and long");

     lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
     a.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            bpresss=false;
            apres =true;

             lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, MainActivity.this); 
        }
    });

     b = new Button(this);
     curb = new TextView(this);
     b.setText("NETWORK get lat long");
     b.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            apres=false;
            bpresss =true;
            Log.e("","NETWORK BUTTON PRESSED");

             lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 10, MainActivity.this); 
            Log.e("","NETWORK BUTTON UNPRESSED");
        }
    });
     setContentView(l);
     l.addView(cura);
     l.addView(a);
     l.addView(curb);
     l.addView(b);

}


@Override
public void onLocationChanged(Location loc) {
    // TODO Auto-generated method stub
    if(apres){
        cura.setText("lat = "+loc.getLatitude()+"   long = "+loc.getLongitude());
        apres=false;
        Toast.makeText(MainActivity.this, "GPS Button", Toast.LENGTH_SHORT).show();
    }
    if(bpresss){
        Log.e("","---------------");
        curb.setText("lat = "+loc.getLatitude()+"   long = "+loc.getLongitude());
        bpresss=false;
        Toast.makeText(MainActivity.this, "NETWORK Button", Toast.LENGTH_SHORT).show();
    }
}

问题:应用工作......在模拟器上很奇怪,而且在真实设备上工作非常紧张。 在模拟器上我可以轻松获得GPS坐标,但NETWORK无法正常工作。只是不紧迫。

在真实设备上GPS坐标不起作用,但netwrok工作得很好。 我想知道如何在真实设备上正确获取GPS Coords的当前位置。 ?

正好在真实设备上按下按钮 - 然后什么都没有。没有坐标。来自genymotion的模拟器与gps一起工作得非常好。

1 个答案:

答案 0 :(得分:0)

gps有时需要超过1分钟才能锁定并为您提供合适的位置,因此您无法保证在点击按钮时gps将被锁定并且您将获得一个位置。您可以做的是等待一段时间确认gps已被锁定后尝试获取位置