2013-05-14 9 views
6

Mam aplikację, która prawie zawsze musi znać lokalizację użytkownika.Poproś użytkownika o włączenie Wi-Fi

Kiedy trzeba uzyskać dostęp do lokalizacji, to zrobić:

final AlertDialog.Builder builder = new AlertDialog.Builder(
         MapScreen.this); 
builder.setTitle("MyAppName"); 
builder.setMessage("The location service is off. Do you want to turn it on?"); 
       builder.setPositiveButton("Enable location", 
         new DialogInterface.OnClickListener() { 
          @Override 
          public void onClick(
            final DialogInterface dialogInterface, 
            final int i) { 
           startActivity(new Intent(
             android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS)); 
          } 
         }); 
builder.setNegativeButton("Continue without location", null); 
builder.create().show(); 

Jednak GPS daje mi pewne informacje, które nie zawsze jest wystarczająco precyzyjny. Wi-Fi zawsze daje mi wystarczającą prefikscję, więc chcę poprosić użytkownika, by włączał Wi-Fi w ten sam sposób, w jaki prosiłam ich o włączenie lokalizacji. Nie chcę go po prostu włączać, chcę, aby użytkownik był powiadamiany o tym i ręcznie go włączyć.

Czy istnieje zamiar wnieść menu WiFi dla użytkownika?

+1

możesz spróbować tego również [Włącz wifi] (http://stackoverflow.com/a/5674685/1083388) –

Odpowiedz

11

Following intencję pokazuje ustawienia sieci bezprzewodowej, takich jak Wi-Fi, Bluetooth i sieci komórkowej:

startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS)); 

dla kompletnej listy ustawień: https://developer.android.com/reference/android/provider/Settings.html

do dokumentacji dotyczącej sposobu startActivity: https://developer.android.com/reference/android/app/Activity.html#startActivity(android.content.Intent)

(pamiętać startActivity jest po prostu wyrzucić i zapomnieć, jeśli chcesz uchwycić odpowiedź, co użytkownik robił tam można zamiast zadzwonić startActivityForResult, prawdopodobnie nie potrzebne w tym przypadku)

+1

Dziękujemy! Zaakceptowana odpowiedź z powodu pełnej listy ustawień ;-) – razielsarafan

+0

Nie ma za co :) –

3

Można spróbować

Intent i = new Intent(Settings.ACTION_WIRELESS_SETTINGS); 
       startActivity(i); 
+0

Dziękuję! Przegłosowano – razielsarafan

2

Dotychczasowe odpowiedzi były quotting "Settings.ACTION_WIRELESS_SETTINGS", ale jest zbyt ogólny, ponieważ otwiera ustawienia ogólnego połączenia bezprzewodowego, podczas gdy pytanie dotyczy tylko Wi-Fi. używam „Settings.ACTION_WIFI_SETTINGS” w następujący sposób

Intent turnWifiOn = new Intent(Settings.ACTION_WIFI_SETTINGS); 
startActivity(turnWifiOn); 

Uwaga: Nie zamierza otworzyć tylko okno, ale zamiast aktywności.

Powiązane problemy