标签: android-location

有什么方法可以清除已经从android设备手动捕获的位置详细信息?

我正在开发一个 android 应用程序,它处理使用 gps 捕获的位置坐标。

我还获得了最后知道的位置详细信息(通过“ locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER”);

它工作正常。但我需要再次检查它。我需要手动清除已经捕获的位置,然后我需要再次检查它。

有没有办法清除手动从android设备捕获的位置详细信息(如转到设置菜单并执行其他过程)。

我正在使用具有sdk>=android2.2 的android设备。

欢迎您的所有想法。

gps android location android-location android-2.2-froyo

5
推荐指数
1
解决办法
8670
查看次数

Google Analytics for Android的位置准确性

在测试Android项目的Google Analytics(第2版)时,我注意到实时地图显示我的位置距离我的实际位置大约200英里.我在物理设备上运行我的项目,这让我相信Google Analytics实际上并不发送任何位置信息,而是在将数据发送到Google服务器时从手机IP地址获取.有没有办法改变这种行为,并使用getLastKnownLocation()提供我自己的位置数据?将其作为实际的标签/操作字符串发送当然有效,但这意味着我无法使用Google Analytics精确地图功能查看用户的来源.

android google-analytics android-location

5
推荐指数
1
解决办法
949
查看次数

如何在没有互联网连接的情况下获取当前的确切位置?

我想在android中获取当前的确切位置坐标.如果移动设备连接到Wifi互联网连接,我能够获得位置,但在其他情况下,当我去其他地方并且没有可用的互联网连接时,它不会给出当前的位置坐标.而是给出最后的位置坐标.

例如:

目前我在一个城市并通过wifi连接获取当前坐标并移动到城市B然后我无法获取当前坐标.而不是它给出最后的位置坐标.

谁能建议我如何在没有互联网连接的情况下获得当前位置.

public Location getLocation() {
    try {
        locationManager = (LocationManager) context.getSystemService(LOCATION_SERVICE);

        // getting GPS status
        isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);

        // getting network status
        isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);

        if (!isGPSEnabled && !isNetworkEnabled) {
            // no network provider is enabled
        } else {
            this.canGetLocation = true;
            // First get location from Network Provider
            if (isNetworkEnabled) {
                locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                if (locationManager != null) {
                    location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                    if (location != null) {
                        latitude = location.getLatitude();
                        longitude = location.getLongitude();
                    }
                } …
Run Code Online (Sandbox Code Playgroud)

android android-location

5
推荐指数
1
解决办法
2万
查看次数

如何更改地理围栏的形状

Google 中的新位置 API允许创建和监视地理围栏,该地理围栏是具有Geofence.Builder该类的圆形区域。该类仅定义了用于创建圆形地理围栏的方法。我想知道是否可以扩展Geofence.Builder类并创建自定义形状。我想做的是定义一个三角形而不是圆形。

如果这是不可能的,Geofence 类是否提供了一种仅监视圆的某个部分的方法?

更新:我想要做的是从用户位置扩展一个三角形,其中一个顶点是用户位置。我希望三角形的高度为 50 米,三角形的底边为 10 米。之后我想做的是检测何时另一个用户进入这个从当前用户位置延伸的三角形。

android android-location google-maps-android-api-2 proximitysensor android-geofence

5
推荐指数
1
解决办法
2234
查看次数

在 Android 设备中以编程方式安装“Google Play 服务”

在我的设备(Karbon A 21 手机)中,Google Play Services未安装时,我的location对象是nullGoogle Play Services安装时,它返回正确的位置。

我知道我可以检查是否Google Play Services使用 - 安装GooglePlayServicesUtil.isGooglePlayServicesAvailable(this)。但是我可以Google Play Services实用地安装还是应该要求用户手动安装它?

为什么其他应用即使Google Play Services没有安装也显示位置?我在我的代码中做错了什么吗?请参阅下面的代码。

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
  Criteria criteria = new Criteria();
  criteria.setCostAllowed(true);
  provider = locationManager.getBestProvider(criteria, true);
  Location location = locationManager.getLastKnownLocation(provider);
Run Code Online (Sandbox Code Playgroud)

gps android-location google-play-services

5
推荐指数
1
解决办法
1569
查看次数

如何使地理围栏准确?

我在地理围栏的准确性方面存在问题,因为用户的位置主要由移动网络决定,这完全是错误的。

我的应用程序在选定地点周围使用地理围栏,当用户进入这些地点时,这些地理围栏将执行一些操作......我确认我的应用程序确实有效,因为当我打开谷歌地图时,位置的准确性会增加,然后我的地理围栏被触发。

我目前的解决方案是使用位置管理器和 GPS 提供商,每隔一分钟获取一次位置,但它似乎会影响电池寿命并在一段时间后停止。

我的问题是:例如,有没有办法使地理围栏精确到 60 m 半径?或者有什么方法可以获得用户的精确位置更新?

提前致谢

android location geolocation android-location android-geofence

5
推荐指数
1
解决办法
5081
查看次数

getGoogleAppid失败/无法上传Android Studio

我有一个应用程序,它获取该位置并将其发送到服务器.我得到以下错误,我不知道它们来自哪里:

 11-05 02:47:11.699 27839-27839/? E/Zygote: MountEmulatedStorage()
11-05 02:47:11.699 27839-27839/? E/Zygote: v2
11-05 02:47:11.719 27839-27839/? E/SELinux: [DEBUG] get_category: variable seinfo: default sensitivity: NULL, cateogry: NULL
11-05 02:47:12.009 27839-27896/name.company.newapp E/GMPM: getGoogleAppId failed with status: 10
11-05 02:47:12.009 27839-27896/name.company.newapp E/GMPM: Uploading is not possible. App measurement disabled
Run Code Online (Sandbox Code Playgroud)

这是完整的logcat:

 11-05 02:47:11.699 27839-27839/? E/Zygote: MountEmulatedStorage()
11-05 02:47:11.699 27839-27839/? E/Zygote: v2
11-05 02:47:11.699 27839-27839/? I/libpersona: KNOX_SDCARD checking this for 10799
11-05 02:47:11.699 27839-27839/? I/libpersona: KNOX_SDCARD not a persona
11-05 02:47:11.719 27839-27839/? I/SELinux: Function: selinux_compare_spd_ram, SPD-policy is …
Run Code Online (Sandbox Code Playgroud)

android android-location android-studio

5
推荐指数
0
解决办法
3299
查看次数

从Android的LocationManager请求getLastKnownLocation时为空指针

我在android 21及更高版本上出现以下错误。

我遇到以下错误,并且对该错误的制造商或型号没有限制。

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] android.content.pm.PackageManager.getPackagesForUid(int)' on a null object reference
    at android.os.Parcel.readException(Parcel.java:1605)
    at android.os.Parcel.readException(Parcel.java:1552)
    at android.location.ILocationManager$Stub$Proxy.getLastLocation(ILocationManager.java:717)
    at android.location.LocationManager.getLastKnownLocation(LocationManager.java:1200)
    at [...]
Run Code Online (Sandbox Code Playgroud)

触发错误的调用是以下一种:

mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
mLocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
Run Code Online (Sandbox Code Playgroud)

我事先检查mLocationManager是否不为null或我是否具有必要的权限。它适用于大多数情况,但确实有一些崩溃的情况。

有谁知道该怎么做才能避免发生这种情况,或者是否有任何方法可以检测到发生这种情况,所以我不要求该位置?

感谢您的关注,

android android-location

5
推荐指数
0
解决办法
924
查看次数

如何捕获SecurityException以获取位置权限

我在某些设备API 6.0+上遇到以下崩溃:

Fatal Exception: java.lang.SecurityException: Client must have ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to perform any location operations.
       at android.os.Parcel.readException(Parcel.java:1693)
       at android.os.Parcel.readException(Parcel.java:1646)
       at com.google.android.gms.internal.zzed.zza(Unknown Source)
       at com.google.android.gms.internal.zzcda.zzdw(Unknown Source)
       at com.google.android.gms.internal.zzcdd.zzvQ(Unknown Source)
       at com.google.android.gms.internal.zzcdj.zzvQ(Unknown Source)
       at com.google.android.gms.location.zzf.zza(Unknown Source)
       at com.google.android.gms.internal.zzbaq.zza(Unknown Source)
       at com.google.android.gms.internal.zzbdd.zzb(Unknown Source)
       at com.google.android.gms.internal.zzbdd.zzqq(Unknown Source)
       at com.google.android.gms.internal.zzbdd.onConnected(Unknown Source)
       at com.google.android.gms.common.internal.zzaa.onConnected(Unknown Source)
       at com.google.android.gms.common.internal.zzn.zzj(Unknown Source)
       at com.google.android.gms.common.internal.zze.zzrj(Unknown Source)
       at com.google.android.gms.common.internal.zzi.zzrk(Unknown Source)
       at com.google.android.gms.common.internal.zzh.handleMessage(Unknown Source)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.os.HandlerThread.run(HandlerThread.java:61)
Run Code Online (Sandbox Code Playgroud)

请注意,在进行任何与位置相关的操作之前,我要求用户获得位置许可.但由于某种原因我无法重现,有些设备似乎在我使用时报告了位置权限:

boolean hasPermission = ActivityCompat.checkSelfPermission(context, permission) == …
Run Code Online (Sandbox Code Playgroud)

android android-location google-play-services

5
推荐指数
1
解决办法
876
查看次数

FusedLocationProvider - 如果位置模式为“仅设备”,有什么方法可以获取位置?

我一直在玩 FusedLocationProvider,我发现如果您手机的定位模式设置为“仅设备”(在设置中更改 - 这意味着仅启用 GPS 定位。不使用 Wifi 网络和手机信号塔来提高准确性),然后我找不到 FusedLocationProvider 为您提供位置而不要求用户将其更改为 High Accuracy(始终调用 onResolutionRequired)的方法。

所有四个 LocationRequest 优先级都不起作用:

  1. PRIORITY_HIGH_ACCURACY - 要求切换到“高精度”定位模式
  2. PRIORITY_BALANCED_POWER_ACCURACY - 同上
  3. PRIORITY_LOW_POWER - 同上
  4. PRIORITY_NO_POWER - 只是没用

如果设备处于此模式,是否无法通过 FusedLocationProvider 获取位置?我很确定您可以通过 android.location.LocationManager 获得它。如果这意味着在它之上进行更好的抽象,这似乎是一个巨大的设计缺陷。

android android-location google-play-services

5
推荐指数
1
解决办法
1444
查看次数