/ / API Hook na zmianę łączności - android, usługi sieciowe, usługa, architektura

API Hook na temat zmiany łączności - Android, serwisy internetowe, serwis, architektura

Mam aplikację do kontroli drukarki na telefonie z Androidem, podstawową formę kontroli
Inspektor może pracować przy kontroli drukarki, nawet jeśli nie ma połączenia z Internetem,

Gdy telefon wróci z odbiorem / Internetem, chciałbym złożyć inspekcję.

Myślałem o zaprojektowaniu aplikacji za pomocą usługi Android
więc zapisze szczegóły inspekcji za pomocą sqlite, a następnie, gdy będzie połączenie z Internetem, aby ponownie przesłać inspekcję.

Ale wymaga to usługi okresowego sprawdzania dostępności Internetu. i zużyje znaczną ilość baterii.

Czy istnieje hak, który mogę zarejestrować w swojej aplikacji, aby powiadomić aplikację lub usługę o połączeniu internetowym?

Odpowiedzi:

3 dla odpowiedzi № 1

Proste sprawdzenie obu Wi-Fi i mobilny Internet w następujący sposób ...

w Manifest.xml :

<receiver android:name=".com.yourapp.ConnectivityChangeReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>


zrobić nowy Odbiornik transmisji :

public class ConnectivityChangeReceiver extends BroadcastReceiver {

@Override
public void onReceive(final Context context, final Intent intent) {

if(checkInternet(context))
{
Toast.makeText(context, "Network Available Do operations",Toast.LENGTH_LONG).show();
}

}

boolean checkInternet(Context context) {
ServiceManager serviceManager = new ServiceManager(context);
if (serviceManager.isNetworkAvailable()) {
return true;
} else {
return false;
}
}
}


i w końcu Kierownik serwisu klasa :

public class ServiceManager {

Context context;

public ServiceManager(Context base) {
context = base;
}

public boolean isNetworkAvailable() {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
return networkInfo != null && networkInfo.isConnected();
}
}


** Nie zapomnij dodać uprawnienia do korzystania z Internetu w swoim oczywisty plik:

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />



Sprawdź także ten super fajny artykuł na vogella.com Usługi Android ...