Come posso aprire la mia applicazione quando un utente entra in una zona che ha il wi-fi? È possibile? Supponiamo che la mia applicazione sia in uno stato onPause() (significa homescreen di My Device). ora quando il dispositivo è connesso al wifi. aprirà automaticamente la mia applicazione.apri l'app quando ti connetti con wifi
risposta
Prova ad aggiungere il ricevitore broadcast e ascolta le modifiche alla rete, quando la connessione Wi-Fi avvia la tua attività. Qualcosa di simile a questa soluzione
public class ConnectivityReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (((null != wifi)&&(wifi.isAvailable())) || ((null != mobile)&&(mobile.isAvailable()))){
Intent uplIntent = new Intent(context, YourActivity.class);
uplIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(uplIntent);
}
}
}
E aggiungere a manifestare
<receiver android:name=".receiver.ConnectivityReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Quello che posso immaginare è una sovrascrittura del onPause()
metodo come questo:
@Override
public void onPause() {
String conn_context = Context.WIFI_SERVICE;
final WifiManager wifi = (WifiManager) getSystemService(conn_context);
if (wifi.isWifiEnabled())
{
super.onResume();
}
else
{
super.onPause();
}
}
ma si deve anche capire un modo per gestire l'evento onPause reale.
@ goody-> quando la mia applicazione suPause() stato (indica la schermata iniziale di Device). quando il dispositivo si connette con il wifi, si aprirà automaticamente la mia applicazione. –
Forse fattibile con l'app Tasker dal Play Store (non gratuito però). Oppure puoi creare un servizio (http://developer.android.com/guide/components/services.html) che avrà il codice delineato nelle altre risposte e quindi avviare l'app (Attività) quando la rete wifi è disponibile.
Ho ricevuto l'errore quando sono disabilitato il wifi . java.lang.RuntimeException: impossibile istanziare il destinatario com.example.text.ConnectivityReceiver: java.lang.ClassNotFoundException: com.example.text.ConnectivityReceiver nel caricatore dalvik.system.PathClassLoader [/data/app/com.example. test-2.apk] –
> quando il mio stato di applicazione onPause() (indica la schermata iniziale di Device). quando il dispositivo si connette con il wifi, si aprirà automaticamente la mia applicazione. –
@ prozhyga-> quando lo stato dell'applicazione myPause() (indica la schermata iniziale di Device). quando il dispositivo si connette con il wifi, si aprirà automaticamente la mia applicazione. –