2017-07-31 38 views
0

我做了一個腳本python,我想要在android中使用python獲取當前的緯度和經度的移動設備,我該怎麼做,哪個模塊更好?如何在android中使用python獲取移動設備的當前緯度和經度?

+0

你的意思是你的腳本應該在PC上運行,你要搶位置信息從連接android手機? – j2ko

+0

我的腳本是關於電報機器人,當我運行它在我的電腦我可以從電報PC或從我的android電報發送消息,所以我想發送消息從android的電報,我得到的位置我的android作爲形式爲谷歌地圖。 – samira

回答

1

如果您需要檢索從連接的Android設備的位置信息,您可以使用下面的腳本:

import sh 
from re import findall 
#Location[network 11.111111,11.111111 acc=24 
LOCATION_PATTERN ="(\w+)\ (\d+.\d+),(\d+.\d+)\ acc" 

def set_location_settings(type, on): 
    status = "+" if on else "-" 
    sh.adb("shell", "settings", "put", "secure", "location_providers_allowed", "{0}{1}".format(status, type)) 

def get_location_settings(): 
    return sh.adb("shell", "settings", "get", "secure", "location_providers_allowed") 

def is_location_enabled(): 
    return bool(get_location_settings().strip()) 

def get_location_data(): 
    d = dict() 
    for (type, lat, long) in findall(LOCATION_PATTERN, str(sh.adb("shell", "dumpsys", "location"))): 
     d.setdefault(type, []).append((lat, long)) 
    return d 

if not is_location_enabled(): 
    set_location_settings("gps", True) 
    set_location_settings("network", True) 

print get_location_settings() 
print get_location_data() 

它爲了獲取位置信息使用dumpsys。也可以選擇打開gps

的結果是一個類型的,以緯度,經度對的列表的字典: 輸出示例:

{ 
'network': [ 
    ('11.111111', '11.111111'), 
    ('11.111111', '11.111111'), 
    ('11.111111', '11.111111'), 
], 
'gps': [ 
    ('11.111111', '11.111111'), 
    ('11.111111', '11.111111'), 
    ('11.111111', '11.111111') 
    ] 
} 
相關問題