Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Проверка типа соединения в «Андроидах»

Оказывается в «Андроидах», начиная с версии 2.2 есть специальное свойство у navigator.connection, которое позволяет узнать тип соединения: «navigator.connection.type». Объект «navigator.connection» содержит так же несколько констант, с самодокументируемыми названиями, которые содержат все возможные значения типа соединения: UNKNOWN, ETHERNET, WIFI, CELL_2G, CELL_3G.

with (navigator.connection)
if (type == CELL_2G || type == CELL_3G) {
    // медленное и/или платное
}

На последней, на данный момент прошивке iOS на iPhone 4, увы, это свойство не поддерживается.

15 комментариев
boltai-shaltai 2011

Тут самое поразительное, что только сейчас допёрли отдавать эту инфу разработчикам.
Вот по каким причинам не отдали раньше? Опасность какую-то видели, или ненадобность?

UNKNOWN тоже очень нравится. ОС не знает канал передачи данных? Тьху.

Евгений Степанищев (bolknote.ru) 2011

Комментарий для boltai-shaltai:

UNKNOWN тоже очень нравится. ОС не знает канал передачи данных? Тьху.

Например, USB-шнурок — это какой канал? Наверное неизвестный.

В будущем, к примеру, появится интернет через NFC или NewSoCoolBuzzword, куда его пихать? Можно константы расширить, конечно. Но пока не расширили можно показать UNKNOWN.

boltai-shaltai 2011

USB-шнурок — это какой канал

Я бы сказал — USB ;-))
А разработчик пусть сам решает, с какой вероятностью за ним кроется платный трафик.

Евгений Степанищев (bolknote.ru) 2011

Комментарий для boltai-shaltai:

Ну, это всё равно что UNKNOWN :) Не несёт никакой информации.

greli (greli.livejournal.com) 2011

Комментарий для Евгения Степанищева:

А андроид умеет брать интернет по USB? У меня такого не получалось.

Евгений Степанищев (bolknote.ru) 2011

Комментарий для greli.livejournal.com:

Не знаю, я не пробовал. Я помню что Windows Mobile умел, вот и предположил, что «Андроид» тоже умеет.

boltai-shaltai 2011

Комментарий для Евгения Степанищева:

Не несёт никакой информации.

Оно даёт вероятность. За usb-шнурком чаще всего — комп, за компом — ethernet. Чаще всего, подчёркиваю. Процентов так на 90, не меньше. Достаточно существенная информация по сравнению с unknown.

Евгений Степанищев (bolknote.ru) 2011

Комментарий для boltai-shaltai:

За usb-шнурком чаще всего — комп, за компом — ethernet. Чаще всего, подчёркиваю

За USB-шнурком — почти гарантированно комп, а дальше — неизвестность. Например, DSL-канал с оплатой по трафику.

praeivis (praeivis.lt) 2011

Комментарий для Евгения Степанищева:

В будущем, к примеру, появится интернет через NFC

Ето как? o.O

андроид умеет брать интернет по USB? У меня такого не получалось.

Попробуйте http://www.junefabrics.com/android/index.php

Евгений Степанищев (bolknote.ru) 2011

Комментарий для praeivis.lt:

Ето как? o.O

Ну то есть «NewSoCoolBuzzword» не смутило? :) Я имею ввиду, мало ли через что там, в будущем будет интернет. Через NFC, кстати, тоже можно, отчего ж нет?

boltai-shaltai 2011

Комментарий для Евгения Степанищева:

Например, DSL-канал с оплатой по трафику

То есть быстрый и сравнительно недорогой канал? Главное, что за USB вряд ли стоят всякие gprs. Могут, но вероятность невелика. Как распорядиться, путь решает разработчик. А с unknown он не может вообще ничего.

Евгений Степанищев (bolknote.ru) 2011

Комментарий для boltai-shaltai:

То есть быстрый и сравнительно недорогой канал?

Кому как. У меня в Казани канал по трафику (DSL), мне он кажется дорогим.

praeivis (praeivis.lt) 2011

Комментарий для Евгения Степанищева:

Я имею ввиду, мало ли через что там, в будущем будет интернет. Через NFC, кстати, тоже можно, отчего ж нет?

А Вы уверены в етом?

Евгений Степанищев (bolknote.ru) 2011

Комментарий для praeivis.lt:

А Вы уверены в этом?

Конечно. Через любой канал передачи данных можно раздавать интернет. Хоть через QR-коды.

Mops 2011

Комментарий для greli.livejournal.com:

А андроид умеет брать интернет по USB? У меня такого не получалось.

умеет. desire + пошивка RuHD 2.1.0, при подключении USB есть «Сквозное подключение к Интернет»