Изменение кода Адама Розенфилда:
import sys
def send_msg(sock, msg):
size_of_package = sys.getsizeof(msg)
package = str(size_of_package)+":"+ msg #Create our package size,":",message
sock.sendall(package)
def recv_msg(sock):
try:
header = sock.recv(2)#Magic, small number to begin with.
while ":" not in header:
header += sock.recv(2) #Keep looping, picking up two bytes each time
size_of_package, separator, message_fragment = header.partition(":")
message = sock.recv(int(size_of_package))
full_message = message_fragment + message
return full_message
except OverflowError:
return "OverflowError."
except:
print "Unexpected error:", sys.exc_info()[0]
raise
Я бы, однако, очень хотел использовать оригинальный подход.
Способ, которым android реализовал и создал эту библиотеку fusedlocationprovider, заключается в том, что он принимает два типа обновлений местоположения: 1 -> Сеть на основе 2 -> GPS
Как и при попытке пользователя получить местоположение изнутри или из любого места где у GPS мало места для получения местоположения со спутника, он использует сеть.
Итак, когда вы работаете в помещении, вы увидите, что это затрудняет выбор места. Но, как вы сказали, иногда это занимает меньше времени, а иногда - много.
Возможный сценарий: всякий раз, когда вы запрашиваете местоположение, он отправляется и пытается найти местоположение, если оно уже занято другим приложением, и если оно есть, вы его получите. В противном случае он попытается найти местоположение самостоятельно, и в следующий раз, когда вы будете искать его, как он уже это даст, вы получите его напрямую.
И вы использовали провайдера GPS, а также провайдера сети.
Дайте мне знать, если это поможет. Спасибо
Большую часть времени провайдеру GPS требуется много времени для поиска местоположения, когда пользователь находится внутри здания. В этом случае вам необходимо получить местоположение у сетевого провайдера для более быстрого получения результатов. GPS работает очень хорошо за пределами здания, но не может найти местоположение изнутри. Пожалуйста, разрешите выбор местоположения из сети и amp; Поставщик GPS для улучшения результата.