3

現在の場所の値を見つける必要があるという点で、アプリケーションを開発しています。そのために、プログラムで gps を有効にしました。今、私は自分の携帯電話をオフにしてオンにしました。現在、現在の位置の値を取得できませんが、デバイスの gps がオンになっています。

この問題は (motorola 2.3.3、htc 2.3.4、および nexus 4.2.1) で見つかりました。

次のコードを使用しました。

String provider = Settings.Secure.getString(getContentResolver(),Settings.Secure.LOCATION_PROVIDERS_ALLOWED);

    if(!provider.contains("gps")){ //if gps is disabled
        final Intent poke = new Intent();
        poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider"); 
        poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
        poke.setData(Uri.parse("3")); 
        sendBroadcast(poke);

locationManager = (LocationManager) getSystemService  (Context.LOCATION_SERVICE);

Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
List<String> provider = locationManager.getProviders(true);
Location location = null;
for (int i=provider.size()-1; i>=0; i--) 
{
       location = locationManager.getLastKnownLocation(provider.get(i));
       if (location != null) break;

if (location != null) 
   {
      String latitude=String.valueOf(location.getLatitude());
      String longitude=String.valueOf(location.getLongitude());    
   }
4

1 に答える 1

0

GPSをオンにした後、GPSが検知を開始するようにrequestLocationUpdateを呼び出す必要があります。これがお役に立てば幸いです。

于 2013-01-31T09:46:51.777 に答える