当前位置: 首页 > 知识库问答 >
问题:

适用于中国的Android GPS位置跟踪

司寇高洁
2023-03-14

我正在为中国开发一个需要GPS位置跟踪的android应用程序。对于位置跟踪,android需要访问Google play服务。但Google play服务在中国被屏蔽。

这个问题有解决办法吗?有没有推荐的第三方库或实现?

谢谢

共有2个答案

南门洋
2023-03-14
  1. LocationManager不需要Google Play服务。本文档完美地提到了这一点https://developer.android.com/guide/topics/location/strategies.html
  2. BaiduLocation似乎适合中国,没有英文文档。好了,微信也用这个,http://developer.baidu.com/map/geosdk-android-developv3.3.htm

几乎我没有任何百度定位的经验。所有的留档都是中文的。如果你看下面的链接,它提到了Device_Sensors、Battery_Saving、Hight_Accuracy等定位模式。也许这就是你想要的。

http://wiki.lbsyun.baidu.com/cms/androidloc/doc/v7.0/index.html

// This is simplified example from github
// https://github.com/buqing2009/GCS_Baidu_Advance/blob/master/app/src/main/java/com/lingmutec/buqing2009/gcs_baidu_advance/BaiduMapFragment.java
private LocationClient mLocationClient = null;

public void requestLocationUpdates() {
    mLocationClient = new LocationClient(getApplicationContext());

    LocationClientOption option = new LocationClientOption();
    option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
    option.setOpenGps(true);
    option.setCoorType("bd09ll");
    option.setScanSpan(1000);
    mLocationClient.setLocOption(option);

    mLocationClient.registerLocationListener(new BDLocationListener() {
        @Override
        public void onReceiveLocation(BDLocation location) {

        }
    });
}
甄佐
2023-03-14

你应该使用Android系统。地方LocationManager从系统中,实现LocationListener,并在LocationManager

// Acquire a reference to the system Location Manager
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

// Define a listener that responds to location updates
LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
      // Called when a new location is found by the network location provider.
      makeUseOfNewLocation(location);
    }

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

    public void onProviderEnabled(String provider) {}

    public void onProviderDisabled(String provider) {}
  };

// Register the listener with the Location Manager to receive location updates
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);

有关更多信息,请参阅dosc和此答案。

 类似资料:
  • 有没有办法在Firebase云消息(FCM)中查看成功发送和失败的推送通知的数量?我可以看到使用 Firebase 控制台发送的消息,但我需要跟踪通过网络应用发送到设备的消息数量。 谷歌解释了如何在Android https://support . Google . com/Google play/Android-developer/answer/2663268上获取统计数据。但是iOS有没有类似

  • 例如,用谷歌搜索网站,登陆主页,然后进入跨域网站正确记录“有机”作为媒介 (已通过在GA中使用实时数据进行验证) 但是,通过谷歌搜索网站,登陆主页,然后进入跨域网站并完成一个事件,会错误地将“Direct”记录为该事件的媒介。 GTM设置已配置为: -5个域推送到“汇总”GA帐户 -autoLinker=true -Cookie-Domain=auto -auto-Link-domains=sit

  • 问题内容: 我打开控制台(chrome \ firefox)并运行以下行: 内容未包含在#popupFrame中,这使它变得很奇怪。 目标是创建像firefox这样的警告框 问题答案: 第二个div是(默认值),因此z-index不适用于它。 您需要定位(将位置属性设置为,而不是在这种情况下可能需要的其他位置)要分配给的任何内容。

  • 问题内容: 我在哪里,在正常情况下,CSS,固定股利将正好它被指定的(定位的情况下,)。 如果我的父母有一个translate3d转换,这似乎不被尊重。我没看到什么吗?我尝试了其他webkit转换,例如样式和转换原点选项,但是没有运气。 我在JSFiddle上附加了一个示例,其中我希望黄色框位于页面的顶部,而不是容器元素的内部。 您可以在下面找到小提琴的简化版本: 我该如何使translate3d

  • 为了创建一个位置跟踪系统(基于fusedlocationprovider),该系统必须跟踪一个人在特定时间段内的位置。 在特定的时间间隔内,需要广播位置,即使应用程序关闭,也不应终止服务。 我应该使用前台还是后台服务,或者两者结合使用,再加上一个解释会很有帮助。

  • 我目前正在编写一个应用程序,它依赖于位置跟踪,并将有关位置的数据发送到服务器。然而,问题是它必须24/7运行,目前我正在经历每2-3天发生一次的随机崩溃。为了让应用程序在后台持续运行,我在beginBackgroundTaskWithExpirationHandler方法的右边放置了一个NSTimer,它位于ApplicationIdentinterBackground方法的后面。计时器每分钟执行