1

携帯電話の現在の位置 (緯度と経度) を取得するためのコードを書いています。ネットワークロケーションサービスが電話で提供されているかどうかにかかわらず、トーストを表示します。このトーストは表示されません。もう 1 つの質問は、を使用して現在地を取得Network_locationするために、アプリが電話を使用するgprs/internetかどうかです。

メイン アクティビティでこのクラスのインスタンスを作成し、このクラスの緯度変数と経度変数を使用してデータを取得しますbroadcast reciever

public class GpsClass extends Activity{

public static String Latitude="";
public static String Longitude=""; 

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

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

    LocationListener listener = new LocationListener() { // anonymous class

        @Override
        public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProviderEnabled(String arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProviderDisabled(String arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onLocationChanged(Location currentLocation) {

            double lat= currentLocation.getLatitude();

            Latitude = Double.toString(lat);

            double longt= currentLocation.getLongitude();

            Longitude = Double.toString(longt);

        }
    };


    manager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, listener);

    if(manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER))
    {
        Toast.makeText(getApplicationContext(), "Network enabled", 0).show();
    }
    else
        Toast.makeText(getApplicationContext(), "Network not enabled", 0).show();

 }

}

私が間違っていることはありますか?

よろしく

4

3 に答える 3

2

問題は、makeText() メソッドの最後のパラメーターである期間に 0 を渡していることだと思います。Toast.LENGTH_SHORTまたはを渡してみてくださいToast.LENGTH_LONG

if(manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER))
{
    Toast.makeText(getApplicationContext(), "Network enabled", Toast.LENGTH_LONG).show();
}
else
    Toast.makeText(getApplicationContext(), "Network not enabled", Toast.LENGTH_LONG).show();
于 2013-06-18T17:29:36.167 に答える
0

問題は期間に 0 を設定することです。これはサンプル例です:

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    locationListener = new LocationListener() {

        @Override
        public void onLocationChanged(Location location) {
            currentLocation = new GeoPoint(location.getLatitude(), location.getLongitude());
            // Set Toast Here To Diplay location    
        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
        }

        @Override
        public void onProviderEnabled(String provider) {
        }

        @Override
        public void onProviderDisabled(String provider) {
        }

    };
    if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
       //10000 means request update every 10 sec
       //10 tell listener that if location change more than 10m then run locationChanged method
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 10, locationListener);
    } else {
        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 10, locationListener);
    }
于 2015-01-10T05:54:51.993 に答える