如何在 Android 中以编程方式获取当前 GPS 位置?

2023-12-21

我需要以编程方式使用 GPS 获取当前位置。 我怎样才能实现它?


我创建了一个小应用程序,其中包含分步说明,用于获取当前位置的 GPS 坐标。

完整的示例源代码位于获取当前位置坐标、城市名称 - 在 Android 中 http://www.rdcworld-android.blogspot.in/2012/01/get-current-location-coordinates-city.html.


看看它怎么运作:

  • 我们需要做的就是在清单文件中添加此权限:

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    
  • 并创建一个 LocationManager 实例,如下所示:

    LocationManager locationManager = (LocationManager)
    getSystemService(Context.LOCATION_SERVICE);
    
  • 检查 GPS 是否启用。

  • 然后实现LocationListener并获取坐标:

    LocationListener locationListener = new MyLocationListener();
    locationManager.requestLocationUpdates(
    LocationManager.GPS_PROVIDER, 5000, 10, locationListener);
    
  • 这是执行此操作的示例代码


/*---------- Listener class to get coordinates ------------- */
private class MyLocationListener implements LocationListener {

    @Override
    public void onLocationChanged(Location loc) {
        editLocation.setText("");
        pb.setVisibility(View.INVISIBLE);
        Toast.makeText(
                getBaseContext(),
                "Location changed: Lat: " + loc.getLatitude() + " Lng: "
                    + loc.getLongitude(), Toast.LENGTH_SHORT).show();
        String longitude = "Longitude: " + loc.getLongitude();
        Log.v(TAG, longitude);
        String latitude = "Latitude: " + loc.getLatitude();
        Log.v(TAG, latitude);

        /*------- To get city name from coordinates -------- */
        String cityName = null;
        Geocoder gcd = new Geocoder(getBaseContext(), Locale.getDefault());
        List<Address> addresses;
        try {
            addresses = gcd.getFromLocation(loc.getLatitude(),
                    loc.getLongitude(), 1);
            if (addresses.size() > 0) {
                System.out.println(addresses.get(0).getLocality());
                cityName = addresses.get(0).getLocality();
            }
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        String s = longitude + "\n" + latitude + "\n\nMy Current City is: "
            + cityName;
        editLocation.setText(s);
    }

    @Override
    public void onProviderDisabled(String provider) {}

    @Override
    public void onProviderEnabled(String provider) {}

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Android 中以编程方式获取当前 GPS 位置? 的相关文章

  • 低于 64K 方法时出现“方法超出编译器指令限制”消息

    我经常在日志中看到类似这样的重复消息 Method exceeds compiler instruction limit 29278 in void com xxxxxxapp xxxxxx MyGLRenderer onDrawFrame
  • 在webview android上显示网页的一部分

    我想制作一个将网页内容加载到 webview 中的应用程序 我只想显示整个网页视图中的特定内容 而不是网页的全部内容 这是一个例子 如果我使用 作为 webview 的 URL 它会加载 webview 上页面的所有内容 但我想删除页面的横
  • 在运行时在 FloatingActionButton 上设置layout_anchor

    我正在尝试为固定到我的 AppBarLayout 的 android support design widget FloatingActionButton 制作动画 我可以在布局 xml 中对其进行很好的设置 并且它显示得很好 但是 我正在
  • Android studio Gradle 同步和构建错误

    我是 android studio 和 gradle 的新手 我得到了 AS 0 5 我下载了0 8 1更新包并通过删除已安装的文件并将更新文件复制到program files文件夹进行更新 它运行正确 但当我尝试同步 gradle 时 出
  • 在 Android 和 iOS 上播放的视频/音频编解码器设置是什么

    哪些编解码器设置将生成可在 Android videoView 和 iOS UIWebView 上播放的有效视频 安卓 http developer android com guide appendix media formats html
  • 如何设置自定义谷歌地图标记的背景图像?

    我有一个用于 Google 标记的自定义图像 但我必须在其背景上设置另一个图像 是否可以设置地图标记的背景图像 是的你可以 试试这个所以问题如何使用 Android 地图 API v2 创建自定义形状的位图标记 https stackove
  • 如何将图片保存到文件中?

    我正在尝试使用标准意图来拍照 然后允许批准或重新拍摄 然后我想将图片保存到文件中 这是我正在使用的意图 Intent intent new Intent android provider MediaStore ACTION IMAGE CA
  • 如何在Android中的多个Activity之间切换

    我有 8 个屏幕 我为此准备了 8 个活动 在第一个活动中我给出了这段代码 从 Is 活动切换到 IInd 在图像按钮上给出单击 public void onClick View v Intent myIntent new Intent v
  • 在 Android Studio 中设置 Http 代理

    我已经阅读了多个类似的问题和文档 但我无法解决我的机器所在的公司防火墙的问题 我收到的错误是 无法刷新 Gradle 项目 未知主机 services gradle org 我所阅读和理解的所有内容都让我相信这是一个 http 代理问题 我
  • 动态创建形状

    我有一个在 XML 中定义的形状对象 如下所示
  • AlertDialog setButton 已弃用

    我在我的 Eclipse Android 项目中使用此代码 alertDialog setButton OK new DialogInterface OnClickListener Override public void onClick
  • 如何让 LibGDX gradled eclipse 项目在 AIDE(Android IDE 应用程序)上工作

    我正在尝试让 libgdx gradle 项目在 AIDE 上运行 AIDE 是 Android 上的一款应用程序 其作用类似于 IDE 它似乎不起作用 因为 buildconfig java 没有生成包名称 有人有任何解决方法吗 好的 我
  • Android Fitness API 未从可穿戴传感器读取数据

    我一直在阅读有关 Google Fit API 的内容 特别是传感器 API https developers google com fit android sensors https developers google com fit a
  • 从 Android 模拟器使用 WebView WebGL

    据我了解 WebGL 仅在 Android Lollipop 中的 WebView 更新 Play 商店中的 WebView 组件 和较新版本 无需 Play 商店更新 中受支持 但是 我有一个使用 Android 7 1 1 的模拟器 并
  • 将 EditText 聚焦在设备上运行的 PopupWindow 中时出现异常

    我正在为 Android 开发一个弹出窗口 它正在工作 我在上面添加了一个 EditText 和一个按钮 当在 ADV 上运行时 它可以正常工作 而在设备上运行时 当我专注于 EditText 时 这会抛出一个奇怪的异常 android v
  • ChromeCast 无法播放 .m3u8 格式的 HLS

    应用程序中集成了 chromecast 一切正常 除了不播放 m3u8 格式的实时流媒体 url 而是播放 m3u8 格式的电影 url 我这样做是为了将 url 设置为 chromecast return new MediaInfo Bu
  • 在 Android 中使用 Fragment 时处理后按

    我在应用程序中使用 Android 滑动菜单和导航抽屉 并且在应用程序中使用片段而不是活动 当我打开抽屉时 单击一个项目会出现一个片段 我使用以下代码从一个片段移动到另一个片段 Fragment fragment null fragment
  • proguard 导致 Google Play 服务的 ActivityRecognitionResult getMostProbableActivity 崩溃

    我最近向 Play 商店发布了一个应用程序 虽然它在没有 proguard 的情况下运行得很好 但当我决定使用它时 我遇到了意外的崩溃 我看过here http developer android com google play servi
  • Android 2.2 中不带预览的相机捕获

    我需要捕获图像而不显示预览 我想在后台作为服务来完成它 可以这样做吗 是有可能实现的 您应该定义一个处理 Camera 对象的类 例如调用 Camera open 等 不要为相机对象提供以下行以禁用预览 mCamera setPreview
  • 安卓框架?

    是否有任何框架比构建 Android 应用程序更容易 您会对其中一个感兴趣吗 很快就会有 我正在开发 DroidFu 一个 Android 共享库 它将为您提供 活动 和服务 中直接提供大量实用功能 例如生成列表和错误对话框 检查 Inte

随机推荐