есть ли способ использования ContentProvider, чтобы проверить, подключен ли мой Android-телефон к Интернету?Android ContentProvider проверяет доступ к сети
Благодаря
есть ли способ использования ContentProvider, чтобы проверить, подключен ли мой Android-телефон к Интернету?Android ContentProvider проверяет доступ к сети
Благодаря
// check internet connectivity
public static boolean isNetworkAvailable(Context context) {
boolean networkStatus;
try {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager
.getActiveNetworkInfo();
networkStatus = (activeNetworkInfo != null && activeNetworkInfo.isConnected()) ? true : false;
} catch (Exception e) {
e.printStackTrace();
DinotaLogger.log(e, Level.SEVERE);
networkStatus = false;
}
return networkStatus;
}
Пожалуйста, не забудьте положить в файл манифеста. Если вы используете эмулятор для проверки этого, нажмите F8
, чтобы отключить доступ к сети. Это отлично работает с эмулятором Android 2.3.3.
Я думаю, что вы хотите ConnectivityManager. Вот пример here.
Это объясняет, как регистрироваться для уведомлений. Чтобы проверить непосредственно, вы можете получить экземпляр ConnectivityManager:
ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = mgr.getActiveNetworkInfo();
boolean is_connected = info.isConnected();
boolean is_available = info.isAvailable();
Это, вероятно, мой предпочтительный способ проверить подключение к сети. Вы можете проводить опрос для сетевого подключения перед каждым вызовом веб-службы, а метод NetworkInfo.isConnectingOrConnected() может быть весьма полезен. –
этот код должен помочь вам запрос, если сеть передачи данных доступна или нет:
public static boolean isDataNetworkAvailable(Context context){
try{
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
catch (Exception e) { return false; }
}
Он расскажет вам в логическом состоянии, что ваш Android подключен к Интернету.
Я использовал это:
public boolean isNetworkAvailable() {
try{
Context context = getApplicationContext();
ConnectivityManager connectivity = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
}else{
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
}catch (Exception e) {
System.out.println("error");
}
return false;
}
Также поставил:
<uses-permission> android:name="android.permission.ACCESS_NETWORK_STATE" />
эта линия для андроид манифеста.
Я использовал это в своей заявке.
Как это возможно с помощью ContentProvider? Это возможно с помощью ConnectivityManager & NetworkInfo. –