Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.63.136] |
|
Сообщ.
#1
,
|
|
|
Всем привет!
Пишу приложение(не вирус), которое должно незаметно определять местоположение смартфона, возникло несколько вопросов: 1. Как определять местоположение? Через интернет? Включать GPS? Как это сделать не заметно для абонента 2. Как отсылать мне эти данные местоположения? Создавать сайт для этого? Может быть почтой?(но при почте там спрашивают об отправке письма Пока, накапливаю теорию для будущей реализации. |
Сообщ.
#2
,
|
|
|
А с какой целью?
|
Сообщ.
#3
,
|
|
|
Цитата ter_nk_ @ Ну например следить, чтобы ребёнок не шлялся после школы где ни попадя. А с какой целью? |
Сообщ.
#4
,
|
|
|
GPS - это как раз таки то, благодаря чему реально получить широту и долготу.
Через интернет нельзя определить точное местоположение устройства, максимум - местоположение сервера провайдера от которого гонят трафик к устройству. (а это явно не показатель положения самого устройства) В Вашем случае нужно будет включать и GPS и интернет. Можно делать это непосредственно перед отправкой (если они выключены), затем получать координаты и слать их на свой сайт/сервис/почту, после чего, возвращать статусы GPS и интернет на место. (Хотя, если пользователь будет смотреть на телефон в такие моменты - лично меня бы смутило что телефон сам включает сеть или GPS). В идеале если обе функции включены постоянно и пользователь не против - тут всё в разы проще. Насчёт сайта - ИМХО, проще и производительнее поднять сервисы (теми же сервлетами). На сервис посылать ID (чтобы знать кто отправляет свои данные) и координаты (чтобы знать где и когда он находился). А уже сервис может делать что угодно, самое примитивное - записать данные в базу (что в дальнейшем можно визуализировать (+интерполяция), и показать в какой точке на карте в конкретный момент времени был пользователь) По использованию самого GPS есть много примеров, вот с русскоязычного стека: public class MyLocationActivity extends Activity implements LocationListener { private static final String TAG=MyLocationActivity.class.getName(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); } @Override public void onLocationChanged(Location location) { if (location != null) { Log.d(TAG, "Широта="+location.getLatitude()); Log.d(TAG, "Долгота="+location.getLongitude()); } } @Override public void onProviderDisabled(String provider) { } @Override public void onProviderEnabled(String provider) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } } В вашем случае, вместе с <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> будет ещё и интернет: <uses-permission android:name="android.permission.INTERNET"/> Это всё необходимо, чтобы получать данные об устройстве "со стороны" в режиме реального времени. Так же, можно просто сбрасывать данные с GPS в память устройства, но, чтение таких данных возможно только с устройством на руках, зато отпадает надобность в интернете и постоянной трате трафика. |