0

GPSを介して電話の位置を取得するコードを書いています。しかし、NULL の場所が表示されるのはなぜですか? これが私のコードです:

final LocationManager manager = (LocationManager) context.getSystemService( Context.LOCATION_SERVICE );


if ( !manager.isProviderEnabled( LocationManager.GPS_PROVIDER ) ) {
                    Toast.makeText(context, "GPS not enabled", 1).show();
                    String provider = Settings.Secure.getString(context.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")); 
                        context.sendBroadcast(poke);


                        LocationManager locationManager;
                        String ccontext = Context.LOCATION_SERVICE;
                        locationManager = (LocationManager)context.getSystemService(ccontext);


                        String provider1 = LocationManager.GPS_PROVIDER;
                        Location location = locationManager.getLastKnownLocation(provider1);
                        String XYZ = updateWithNewLocation(location);
                        Toast.makeText(context, XYZ, 1).show();


                }

                else Toast.makeText(context, "GPS is enabled", 1).show();




    }

updatewithnewlocation メソッドは次のとおりです。

private String updateWithNewLocation(Location location) {
        // TODO Auto-generated method stub

        String latLongString;
        String myLocationString;
        if(location!=null){
            double lat = location.getLatitude();
            double longi = location.getLongitude();
            latLongString = "Latitude: "+lat+"  Longitude: "+longi;


        }
        else
        {
            latLongString = "Not found!";
        }

        return latLongString;
    }

基本的に、私は GPS をオンにしてから電話の現在の位置を取得しようとしていますが、なぜ null の位置を取得しているのでしょうか?

助けてください、私はアンドロイドに比較的慣れていません!

4

1 に答える 1

0

GPS に不明な問題がある可能性があります。最高のプロバイダーを使用する可能性もあります

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

  Criteria criteria = new Criteria();
  criteria.setAccuracy(Criteria.ACCURACY_FINE);
  String provider = lm.getBestProvider(criteria, true);
  Location mostRecentLocation = lm.getLastKnownLocation(provider);
于 2012-11-10T15:09:05.897 に答える