2015-02-18 3 views
0

работает над Android-приложением, и я совершенно новичок в разработке Android. На данный момент у меня есть проблемы с поиском способа деактивации GPS на устройстве.Android: как отключить GPS

Что я пытаюсь сделать, так это отключить GPS, когда пользователь нажимает кнопку. Насколько я знаю, единственный способ - купить с помощью метода removeUpdates из LocationManager. Но моя проблема заключается в том, что этот метод ожидает LocationListiner в качестве параметра. Но я не знаю, как получить LocationListiner:/

Вот мой код:

Следующий код является частью OnCreate моего MainActivity

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:/

ответ

0

Вам нужно реализовать где-нибудь локатор LocationListener, чтобы иметь возможность получать обновления через onLocationChanged (Location location).

И тогда вы должны указать locationManager.removeUpdates (MyLocationListener);

Вы можете использовать эту активность для реализации слушателя, а затем locationManager.removeUpdates (this);

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); 
    } 
+0

У меня есть класс, где я осуществлению LocationListener 'общественный класс GetLocation реализует LocationListener { частной деятельности деятельности; public void GetLocation (Activity _activity) { this.activity = _activity; } @Override public void onLocationChanged (Location location) { location.getLatitude(); location.getLongitude(); Строка myLocation = location.getLatitude() + "" + location.getLongitude(); MainActivity.textViewToChange.setText ("Position" + myLocation); } ' – Verdemis

+0

Затем вам нужно передать экземпляр этого класса методу RemoveUpdate. Проще всего создать экземпляр в oncreate активности/фрагмента. Обычно я сохраняю ссылку на locationmanager и locationlistener в классе экрана. Из этого легко остановить и запустить слушателя. *** Я отредактировал мой код *** – AxelH

+0

Хорошо, я сделал это ^^ спасибо – Verdemis

Смежные вопросы