FONTE E SCREENSHOTS:Android: Wifi manager in FullScreen | FindYourApp
NB: La guida presente sul forum è completa. Se riscontrate difficoltà nella lettura in particolare dei codici vi consiglio di leggerli direttamente dalla fonte! Buona lettura!
INIZIARE A SVILUPPARE 2
Se avete perso la guida precedente ecco il link: Introduzione allo sviluppo Android | FindYourApp
L’obiettivo di questa piccola guida sarà, come si evince dal titolo, sviluppare una piccola applicazione che gestisce le impostazioni wifi, o meglio, visto che vogliamo imparare passo dopo passo, cercare semplicemente di creare una utility che abilita e disabilita il wifi in modo veloce.
In che modo?
Quando apriremo l’app se il wifi è disattivato, allora quest’ ultima lo attiverà, altrimenti farà l’operazione contraria.
Iniziamo.
Prima di tutto creiamo un nuovo progetto da eclipse, chiamiamolo Esempio2, e inseriamolo nel package dell’esercizio del tutorial precedente (altrimenti create un nuovo package del tipo android.Esempio), come mostrato nell’ immagine sotto.
A questo punto siamo di fronte all’Activity principale della nostra applicazione e visto la semplicità della nostra app, possiamo provare ad aggiungere qualcosina di interessante come ad esempio
la possibilità di rendere la nostra schermata fullscreen. Per fare ciò bastano 2 righe di codice da inserire prima dell’ impostazione del content view ( la chiamata setContentView(ID) per intenderci ):
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FL AG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
Nella prima riga chiamiamo il metodo requestWindowFeature(int feature) ( equivalente a getWindow(). requestFeature(int feature) )che permette di abilitare alcune features per la nostra schermata. In questo caso richiediamo di eliminare il testo del titolo in alto in modo da avere più spazio, mentre con la seconda riga abilitiamo un flag per il full screen.
Successivamente settiamo il main.xml come risorsa da cui prendere i contenuti della nostra app.
Ora vediamo come costruire un semplice metodo che abilita o disabilita la connessione wifi:
public boolean enableWF(TextView o, Drawable y, Drawable n){
WifiManager wfManager= (WifiManager) getSystemService(Context.WIFI_SERVICE);
if(wfManager.isWifiEnabled()){
if(wfManager.setWifiEnabled(false)){
o.setText("WiFi Disabled\n");
o.setBackgroundDrawable(n);
return true;
}
}
else
if(wfManager.setWifiEnabled(true)){
o.setText("WiFi Enabled\n");
o.setBackgroundDrawable(y);
return true;
}
return false;
}
Il metodo prende come argomento un oggetto TextView utile per la stampa di stringhe di testo e due oggetti di tipo Drawable che permettono di gestire elementi grafici come ad esempio immagini.
Cosa facciamo nel metodo?
Inizializziamo un oggetto WifiManager che identifica tutte quelle azioni che si possono compiere con il wifi e semplicemente facciamo dei controlli su di esso per decidere o meno di abilitare una connessione wireless. Per ogni scelta comunque selezioniamo un’immagine diversa e un testo diverso.
Andiamo a vedere ora il codice completo.
package android.sample;
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
public class Android_sample extends Activity {
public boolean enableWF(TextView o, Drawable y, Drawable n){
WifiManager wfManager= (WifiManager) getSystemService(Context.WIFI_SERVICE);
if(wfManager.isWifiEnabled()){
if(wfManager.setWifiEnabled(false)){
o.setText("WiFi Disabled\n");
o.setBackgroundDrawable(n);
return true;
}
}
else
if(wfManager.setWifiEnabled(true)){
o.setText("WiFi Enabled\n");
o.setBackgroundDrawable(y);
return true;
}
return false;
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FL AG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
Resources res = this.getResources();
TextView tp = new TextView(this);
tp.setTextColor(Color.BLACK);
tp.setBackgroundColor(Color.WHITE);
if (!enableWF(tp,res.getDrawable(R.drawable.backgroun d),
res.getDrawable(R.drawable.background_no)))
tp.setText("Impossibile verificare le impostazioni Wifi");
this.setContentView(tp);
}
}
Di nuovo non c’è altro che per richiamare le immagini dalla cartella drawable (ne esistono tre che si differenziano per la grandezza che l’ immagine dovrebbe assumere nella cartella res/ del nostro progetto) attraverso il file main.xml.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/background"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/background_no"
/>
</LinearLayout>
Il listato è molto intuitivo: creiamo nel nostro layout due tipi di TextView ognuno dei quali richiama una immagine diversa a seconda se il wifi è attivo o no.
Ora inserite le immagini che volete nelle cartelle drawable, una da visualizzare se il wireless è attivo e una per rappresentare il wifi disattivato e provate la app.
Questo è il mio risultato.
Articolo di: Francesco Miscia.
PS: Vorrei ringraziare il Team di Androidiani che ci consente di postare queste guide inoltre vorrei scusarmi per i miei, e non dell'autore della guida, precedenti errori.