【问题标题】:How can I get location without internet in android, using only GPS如何在没有互联网的情况下仅使用 GPS 在 android 中获取位置
【发布时间】:2011-08-26 04:36:05
【问题描述】:

我只想使用 GPS 获取位置。我不想在这个应用程序中使用互联网和 GPRS。我的代码如下;告诉我我哪里错了。

代码:

package com.getlocation;

import android.app.Activity;
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

public class UseGps extends Activity {
    /** Called when the activity is first created. */
    private String provider;
    LocationManager locationManager;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); /*
                                         * Use the LocationManager class to
                                         * obtain GPS locations
                                         */
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        LocationListener mlocListener = new MyLocationListener();
         Criteria criteria = new Criteria();
            criteria.setAccuracy(Criteria.ACCURACY_COARSE);
            criteria.setAccuracy(Criteria.ACCURACY_FINE);
            provider = locationManager.getBestProvider(criteria, true);
            locationManager.requestLocationUpdates(provider, 61000, 250,
                mlocListener);
    } /* Class My Location Listener */
public class MyLocationListener implements LocationListener {
    @Override
    public void onLocationChanged(Location loc) {
        loc.getLatitude();
        loc.getLongitude();
        String Text = "My current location is: " + "Latitude = "
                + loc.getLatitude() + "Longitude = " + loc.getLongitude();
        Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT)
                .show();
        Log.d("TAG", "Starting..");
    }

    @Override
    public void onProviderDisabled(String provider) {
        Toast.makeText(getApplicationContext(), "Gps Disabled",
                Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onProviderEnabled(String provider) {
        Toast.makeText(getApplicationContext(), "Gps Enabled",
                Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
    }
}/* End of Class MyLocationListener */
}/* End of UseGps Activity */

【问题讨论】:

标签: android


【解决方案1】:

仅用于 GPS Provider,不需要 GPRS。

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>

您需要将权限放入清单文件中。

【讨论】:

  • 是的,GPS 是基于卫星的,不需要互联网即可工作。
【解决方案2】:

您无需连接互联网即可在手机中运行 GPS 系统。 GPS 时间同步不需要互联网连接。但是如果你想在谷歌地图上显示当前位置,你可能需要互联网连接。

为你编写代码对我来说一切都很好。

在您的活动中尝试此代码。

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

LocationListener mlocListener = new YourLocationListener(getApplicationContext(), mobileNo, deviceId);
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,mlocListener);

并将其包含在 androidmanifest.xml 中

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />

【讨论】:

  • @Sam_k 我可以在没有互联网连接的情况下获得当前的 latitute 和 logitute 吗?
  • @PintuCorna 您必须为此使用 GPS 提供
猜你喜欢
  • 2013-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
  • 2017-09-09
  • 2013-02-17
相关资源
最近更新 更多