2012-04-24 4 views
9

Я знаю, что этот вопрос задавали много здесь, но просто интересно, так как ICS был выпущен, есть ли способ включить gps программно?ICS Android позволяет gps программно?

пытаюсь включить gps и отправить местоположение устройства по электронной почте, приложение запустится, когда оно получит сообщение sms.

ответ

9

есть ли способ включить gps программно?

Надеюсь, что нет, так как это было бы секретностью. AFAIK, все известные отверстия, которые позволили вредоносным программам включить GPS программно, теперь закрыты.

пытаюсь включить GPS и отправить местоположение устройства на электронную почту

Пользователь определяет, будет ли включен GPS или нет.

+0

, если это так, то есть ли способ запустить функцию в фоновом режиме, как только GPS включена? – HeWhoProtects

+1

Ну, есть ['GpsStatus.Listener'] (http://developer.android.com/reference/android/location/GpsStatus.Listener.html), и есть три метода состояния в [' LocationListener'] (http://developer.android.com/reference/android/location/LocationListener.html). –

+0

Хмм, возможно, это будет вокруг ... Я посмотрю, спасибо окт. – HeWhoProtects

4

Как сказал Марк, я уверен, надеюсь, не потому, поворачивая вещи на этом офф пользователь хочет является, конечно, не очень хорошая вещь, чтобы сделать ;-)

Вы можете попросить пользователя сделать это, конечно, (который вы вероятно, уже нашли, но для справки здесь является тривиальным способом сделать это из памяти)

LocationManager L = (LocationManager) getSystemService(LOCATION_SERVICE); 

if (!L.isProviderEnabled(LocationManager.GPS_PROVIDER)) { 
    Intent I = new Intent( 
       android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); 
     startActivity(I); 
} 
+1

ха-ха, да ... но я не думаю, что вор будет следовать моим инструкциям, чтобы включить gps – HeWhoProtects

+0

@HeWhoProtects Ok so Use Case: Phone Украден, пользователи отправляют SMS, Thief был умным и отключает GPS, но не SMS. Вор всегда мог стереть телефон приложения, и в этом случае вы не можете много сделать. Я думаю, что вы на правильном пути, чтобы обойти типичного вора, который может быть немного сообразительным, но не слишком сообразительным, просто позвольте службе принять sms, если gps отключен с использованием метода обнаружения, а затем que для gps ping, когда он снова включен. – Idistic

+0

Вот что я собираюсь сейчас, я собираюсь узнать, как делать push-уведомления и заменять смс, не нужно быть в ситуации кражи, потерять телефон или что-то – HeWhoProtects

3

чтобы задать пользователю включить GPS, проверить это link

Ниже будет внутренности функции, что попытки получить последнюю известную GPS-локацию в порядке убывания точности. Если у пользователя нет включенного GPS, вы не можете его включить. Лучшее, что вы можете сделать, это захватить последнее известное местоположение или предложить им включить GPS. Каждый раз, когда пользователь использует GPS в другом приложении и получает новую координату или подключается к беспроводной сети, последнее известное местоположение изменится. Я полагаю, вы могли бы написать справочную службу, которая каждые 5-10 минут проверяет эти данные и отправляет их вам. Хотя, я не согласен с тем, как вы, похоже, направляетесь с этим приложением. лол. Для науки!

LocationManager lm = (LocationManager)act.getSystemService(Context.LOCATION_SERVICE); 
Criteria crit = new Criteria(); 
crit.setAccuracy(Criteria.ACCURACY_FINE); String provider = lm.getBestProvider(crit, true); 
Location loc = lm.getLastKnownLocation(provider); 

if(loc){ 
    return loc; 
} 
lm = (LocationManager)act.getSystemService(Context.LOCATION_SERVICE); 
crit = new Criteria(); 
crit.setAccuracy(Criteria.ACCURACY_COARSE); 
provider = lm.getBestProvider(crit, true); 
loc = lm.getLastKnownLocation(provider); 

if(loc){ 
    return loc; 
} 
lm = (LocationManager)act.getSystemService(Context.LOCATION_SERVICE); 
crit = new Criteria(); 
crit.setAccuracy(Criteria.NO_REQUIREMENT); 
provider = lm.getBestProvider(crit, true); 
loc = lm.getLastKnownLocation(provider); 
return null; 
+0

, часть которого «вы» не указали, t согласен с lol? Я по-прежнему новичок в Android-разработке, поэтому, если есть лучший способ сделать то, что я более чем раскрываю в отношении критических замечаний: D – HeWhoProtects

+0

Ну что ж, похоже, что вы могли бы реализовать приложение-преследователь. Вы просто пытаетесь использовать GPS или пытаетесь получить GPS-информацию дискретно, не зная? (например: не использовать разрешения для gps) – JustinDanielson

+0

Никто из моих приложений не для злых намерений, я создаю службу отслеживания, где, если пользователь теряет свой телефон, они могут войти на мой сайт и отправить push-уведомление на свой собственный телефон, чтобы отправить сигнал gps, воспроизвести звуковой сигнал (если телефон был молчал) и т. д. – HeWhoProtects

0

Вы должны спросить у пользователя разрешения:

Intent gpsOptionsIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); 
      startActivity(gpsOptionsIntent); 
Смежные вопросы