2012-04-24 11 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']には3つの状態メソッドがあります( http://developer.android.com/reference/android/location/LocationListener.html)。 –

+0

hmmそれはその周りの方法かもしれない...私は見て、感謝10月 – HeWhoProtects

4

マークは、ユーザーがオフだしたいという事をオンにすると、確かに;-)

を行うには非常に素晴らしいものではありませんので、私は確信しているあなた(あなたはもちろん、そうするようにユーザーに依頼することができないと思い、言ったようにおそらく既に見つかったが、ここでは参考のためにチェックアウトし、GPSを有効にするために、ユーザーに依頼する

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

haha​​ええ...しかし、私は泥棒がGPSを有効にするために私の指示に従うとは思わない – HeWhoProtects

+0

@HeWhoProtects盗まれたユーザーはSMSを送信し、泥棒はスマートだったし、GPSではなくSMSをオフにする。泥棒はいつでもアプリの携帯電話を拭くことができます。私はあなたが正しい知識を持っているかもしれない典型的な泥棒をバイパスすると思うが、それほど精通していないかもしれない。サービスがSMSを受け入れるようにする。 – Idistic

+0

今のところ何が起こっているのか、通知を押してSMSを交換する方法を学ぶつもりです、電話や何かを失う、盗難の状況にある必要はありません – HeWhoProtects

3

メモリからそうする矮小な方法)である。この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

私のアプリは邪悪な意図ではなく、追跡サービスを作成しています。ユーザーが電話を紛失した場合、自分のウェブサイトにログインして自分の電話にプッシュ通知を送りますGPS信号を送信し、アラーム音を鳴らします(電話が無音の場合)。 – HeWhoProtects

0

あなたは許可をユーザーに確認する必要があります。

Intent gpsOptionsIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); 
      startActivity(gpsOptionsIntent); 
関連する問題