Поиск сообщества
Показаны результаты для тегов 'wi-fi'.
Найдено: 5 результатов
-
Всем привет! У меня уже несколько лет работают приложения под Windows и под Andriod, в которых выполняется обмен данными по локальной сети по протоколу TCP-IP. Теперь вот мне понадобился прием multicast-пакетов по протоколу UDP. Под Windows всё работает замечательно, а вот под Android ничего принять не могу... Подскажите чего не хватает, или дайте ссылку на пример, где уже реализовано подобное... Вот выдержки из кода: // переменные FSocket:TSocket; FiAR:IAsyncResult; FasyncWE:TMultiWaitEvent; data:TBytes; res:TWaitResult; WifiLock: JWifiManager_WifiLock; MulticastLock: JWifiManager_MulticastLock; ... // регистрация в группе procedure AddMemberShip(MultiAddr, InterfaceAddr:Cardinal); var Mreq:ip_mreq; begin fillchar(Mreq, SizeOf(Mreq), 0); move(MultiAddr, Mreq.IMR_MultiAddr.S_addr, SizeOf(Mreq.IMR_MultiAddr.S_addr)); move(InterfaceAddr, Mreq.IMR_Interface.S_addr, SizeOf(Mreq.IMR_Interface.S_addr)); CheckSocketResult(setsocketoption(FSocket.Handle, IPPROTO_IP, IP_ADD_MEMBERSHIP, Mreq, SizeOf(Mreq)), 'setsockopt:IP_ADD_MEMBERSHIP'); end; ... // permission... ACCESS_COARSE_LOCATION ACCESS_FINE_LOCATION ACCESS_NETWORK_STATE ACCESS_WIFI_STATE CHANGE_CONFIGURATION CHANGE_NETWORK_STATE CHANGE_WIFI_MULTICAST_STATE CHANGE_WIFI_STATE INTERNET READ_CALENDAR READ_EXTERNAL_STORAGE WRITE_CALENDAR WRITE_EXTERNAL_STORAGE WAKE_LOCK ... // настройка wi-fi WifiLock.acquire; MulticastLock.acquire; ... // создание и настройка сокета FSocket:=TSocket.Create(TSocketType.UDP); FSocket.Bind(TNetEndpoint.Create(ServerIP, ServerPort)); AddMemberShip(TIPAddress.Create(239, 78, 1, 1).Addr.S_addr, ServerIP.Addr.S_addr); AddMemberShip(TIPAddress.Create(239, 78, 1, 2).Addr.S_addr, ServerIP.Addr.S_addr); AddMemberShip(TIPAddress.Create(239, 78, 1, 78).Addr.S_addr, ServerIP.Addr.S_addr); ... // Прием данных в потоке... FiAR:=FSocket.BeginReceiveFrom; FasyncWE:=FiAR.AsyncWaitEvent; res:=FasyncWE.WaitFor; if res = wrSignaled then data:=FSocket.EndReceiveBytesFrom(FiAR); // Прием
-
Коллеги, подскажите пожалуйста, как в Delphi из своего приложения перейти к настройкам устройства Android, в частности Wi-Fi и GPS? По нажатию кнопки пытаюсь выполнить такой код (нашел по теме на просторах), ничего не происходит ни в отладчике ни на экране. А, по идее, должна открыться Activity «Способ определения координат». var Intent: JIntent; WiFIServiceNative: JWifiManager; begin Intent := TJIntent.Create; Intent.setClassName(StringToJString('com.android.settings'), StringToJString('com.android.settings.widget.SettingsAppWidgetProvider')); Intent.addCategory(TJIntent.JavaClass.CATEGORY_ALTERNATIVE); Intent.setData(StrToJURI('3')); TAndroidHelper.Activity.sendBroadcast(Intent); ... Вот еще, здесь же пытаюсь программно выключить Wi-Fi — приложение вылетает с ошибкой «...class segmentation fault (11).», в отладчике методы Wi-Fi менеджера выполняются бесконечное количество раз, пока не вылетает указанная ошибка, т.е. нажатие F8 возвращает обратно на ту же строчку выполнения метода. WiFIServiceNative := JWifiManager(TAndroidHelper.Activity.getSystemService(TJContext.JavaClass.WIFI_SERVICE)); if Assigned(WiFIServiceNative) then begin memo1.Lines.Add('Has Wifi manager'); memo1.Lines.Add('Wifi state: ' + IntToStr(WiFIServiceNative.getWifiState)); memo1.Lines.Add('Try to Wi-Fi off:'); if WiFIServiceNative.setWifiEnabled(false) then memo1.Lines.Add(' - OK') else memo1.Lines.Add(' - FAIL'); Прошу вашей помощи — как правильно работать с настройками Android? Приложение пустое — кнопка и мемо. Permissions для проекта такие: <!-- This is the platform API where NativeActivity was introduced. --> <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_CALENDAR" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_CALENDAR" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" />
-
Если Wi-Fi на телефоне работает в режиме клиента (подключается к внешней точке доступа), то как с ним работать понятно. Если же Wi-Fi на телефоне (ОС Android) работает в режиме персональной точки доступа, то как из программы получить свой ip-адрес и другие параметры сети. Кто знает, помогите, желательно исходный код на Delphi.
-
Если Wi-Fi на телефоне работает в режиме клиента (подключается к внешней точке доступа), то как с ним работать понятно. Если же Wi-Fi на телефоне (ОС Android) работает в режиме персональной точки доступа, то как из программы получить свой ip-адрес и другие параметры сети. Кто знает, помогите, желательно исходный код на Delphi.
-
Коллеги, помогите пожалуйста с поиском решения. Есть зал 100x100 метров, 400-600 человек на борту. На их мобильные устройства (смартфоны, планшеты) нужно принимать раз в секунду различный текст ~120 символов в кодировке UTF8. Можно широковещательно, или P2P. Сейчас мы выбираем технологию передачи данных в ограниченном помещении большому количеству людей. От выбора инфраструктуры, понятно, зависит логика мобильных приложений для этой цели. 1. Как лучше выстроить инфраструктуру? 2. Чем лучше рассылать Bluetooth или Wi-Fi (понятно, что GPRS канал в таком скоплении — не вариант, базовая станция не справятся, да и сигнала может не быть)? 3. Сколько точек доступа и каких лучше разместить? 4. На какие нюансы обратить внимание? Сначала я обратился к технологии маячков. Но по многим параметрам маячки здесь не подходят. Однако, не исключаю возможность широкого вещания по Bluetooth каналу. Так же возможно использовать технологию тетеринг (tethering), раздавать сигнал через смартфоны раскинутые по залу. Можно тоже самое организовать, раскидав точки доступа Wi-Fi. Преимущества той или иной инфраструктуры для меня не очевидны. Может кто-то сталкивался с подобными задачами? Заранее благодарю за участие в обсуждении.