Android:如何停用GPS

时间:2015-02-18 14:49:08

标签: java android gps

'正在开发一个Android应用程序,我对android开发很新。 目前,我无法找到在设备上停用GPS的方法。

我要做的是在用户点击按钮时停用GPS。据我所知,唯一的方法是使用LocationManager中的removeUpdates方法购买。但我的问题是这个方法等待LocationListiner作为参数。但我不知道如何获取LocationListiner:/

这是我的代码:

以下代码是我的MainActivity的onCreate

的一部分
 Button save = (Button) findViewById(R.id.save);
    save.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            // Startet die Abfrage der GPS Position
            final LocationManager mLocMan = GetMyLocation();

            final AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create(); //Read Update
            alertDialog.setCanceledOnTouchOutside(false);
            alertDialog.setTitle("GPS Signal");
            alertDialog.setMessage("Some message");

            alertDialog.setButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                    mLocMan.removeUpdates();
                }
            });

            alertDialog.show(); 
        }

    });

private LocationManager GetMyLocation(){
    LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    GetLocation getMyLocation = new GetLocation();

    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, getMyLocation);

    return locationManager;
}

也许有人暗示我。目前我仍然有一些问题缠绕在android系统周围:/

1 个答案:

答案 0 :(得分:0)

您需要在LocationListener的某处实现,以便能够通过onLocationChanged(位置位置)接收更新。

然后,你必须使用locationManager.removeUpdates(MyLocationListener);

您可以使用该活动来实现侦听器 locationManager.removeUpdates(本);

public class MyActivity extends Activity{
...

LocationManager manager;
GetLocation listener;

@Override
    protected void onCreate() {
manager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
listener = new GetLocation();

@Override
    protected void onResume() {
        manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener);
    }

    @Override
    protected void onPause() {
        manager.removeUpdates(listener);
    }