Протокол обеспечения доступа в интернет. Автоматически проверяет доступность интернета, перед выполнением нужной операции. Если операция исполняется через протокол "Connection", то исполнение операции начнется только, если все условия протокола "Connection"(есть доступ в интернет) выполнены. В противном случае будет показан диалог, с возможностью отмены операции.
Полезно если для выполнения операции критически важно иметь доступ в интернет.
- Автоматически создает и показывает диалоги, используя
SupportFragmentManager
. - Самостоятельно регистрирует и удаляет
BroadcastReciever
(android.net.conn.CONNECTIVITY_CHANGE
). Благодаря этому, диалог "Нет доступа в интернет" автоматически закрывается как только появляется доступ в интернет.
import com.ivanov.tech.connection.Connection;
Connection.protocolConnection(getActivity(), getFragmentManager(),R.id.main_container, new ProtocolListener(){
@Override
public void isCompleted() {
//Все условия протокола выполнены
yourOperation();
}
@Override
public void onCanceled() {
//Пользователь нажал "Cancel"
}
});
Аргументы:
getActivity
- контекст активитиgetFragmentManager
-supportFragmentManager
из actionbarsherlock (Внимание! Не путайте с нативным getFragmentManager)R.id.main_container
- передается layout используемый в качестве окна активити, тогда диалог будет показан на весь экран. Если передать другой layout, то в качестве окна диалога будет использован переданный вами layoutjava new ProtocolListener
- реализация интерфэйсаProtocolListener
для обратного вызова. Тут передается операция (другими словами ваш код)
Если в момент вызова Connection.protocolConnection(..)
есть доступ к интернету, то вызывается метод isCompleted
переданного ProtocolListener
объекта;
иначе создается и открывается фрагмент FragmentNoConnection
:
При нажатии "Confirm" переходим к "Настройки сети" телефона. При нажатии "Cancel" фрагмент закрывается,
и вызывается метод onCanceled
переданного Status объекта
При создании, фрагмент FragmentNoConnection
самостоятельно регистрирует BroadcastReciever
, который вызывает isConnected
в случае появления интернета.
- Для работы Connection требуется ActionBarSherlock
- Добавьте проект Conneсtion в Workspace
- Установите ActionBarSherlock в качестве библиотеки
- Выполните Project->Clean
- Выполните все из "Добавление проекта в Eclipse"
- Удостоверьтесь что проект НЕ БИБЛИОТЕКА. Для этого перейдите Project->Properties->Android, УБЕРИТЕ галочку isLibrary (находится внизу окна), нажмите "Apply"
- Можно запустить
- Выполните все из "Добавление проекта в Eclipse"
- Сделайте проект Connection библиотекой
- Добавьте проект Connection в качестве библиотеки в ваш проект
- В манифесте добавьте строки:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
Пример использования библиотеки вы можете видеть в проекте Session