Android gps 使用
博客专区 > sy_dqs 的博客 > 博客详情
Android gps 使用
sy_dqs 发表于2年前
Android gps 使用
  • 发表于 2年前
  • 阅读 11
  • 收藏 0
  • 点赞 1
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

摘要: 获取gps 定位信息
private void getLocationManager() {
    //locationManager
    locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    if(null == locationManager) {
        Log.e(TAG, "locationManager = NULL");
        return;
    }
    if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {

        final int REQUEST_CODE_ASK_PERMISSIONS = 123;
        int hasWriteContactsPermission = checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION);
        hasWriteContactsPermission = checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION);
        if (hasWriteContactsPermission != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(new String[] {Manifest.permission.ACCESS_COARSE_LOCATION},
                    REQUEST_CODE_ASK_PERMISSIONS);
            return;
        }

        Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

        if(location != null){
            latitude = location.getLatitude();
            longitude = location.getLongitude();

            text.setText("经度1:" + latitude + " 纬度" + longitude);
        }
    }else{
        LocationListener locationListener = new LocationListener() {

            // Provider的状态在可用、暂时不可用和无服务三个状态直接切换时触发此函数
            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {

            }

            // Provider被enable时触发此函数,比如GPS被打开
            @Override
            public void onProviderEnabled(String provider) {

            }

            // Provider被disable时触发此函数,比如GPS被关闭
            @Override
            public void onProviderDisabled(String provider) {

            }

            //当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发
            @Override
            public void onLocationChanged(Location location) {
                if (location != null) {
                    Log.e(TAG, "Location changed : Lat: "
                            + location.getLatitude() + " Lng: "
                            + location.getLongitude());
                }
            }
        };
        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000, 0,locationListener);
        Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
        if(location != null){
            latitude = location.getLatitude(); //经度
            longitude = location.getLongitude(); //纬度

            text.setText("经度2:" + latitude + " 纬度" + longitude);

        }
    }
}

需要进行

checkSelfPermission

函数验证,次为Android M 新特征。

还需要AndroidManifest.xml 添加权限:

<!-- 连接互联网Internet权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- GPS定位权限 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

 

 

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 3
码字总数 336
×
sy_dqs
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: