android-location 相关问题

android-location是指Android框架提供的位置API。

我的应用程序启用了后台位置,Play 商店拒绝了我的应用程序更新。怎么解决?

我正在flutter中构建一个食品配送应用程序,其中包含卖家端、用户端和司机端。 该应用程序包含实时跟踪功能,需要后台位置权限。但这

回答 1 投票 0

获取纬度和经度的负值

我想在我的应用程序中获取经度和纬度的值,我已经做到了,但问题是我得到带有值的负号。虽然值是正确的,但不知道为什么得到

回答 4 投票 0

用户位置不正确

我正在尝试获取天气应用程序的用户当前位置,但我获取了某些“美国”区域的位置。我已经尝试了多个教程,但未能获得正确的当前位置。 它

回答 3 投票 0

我们如何确定是否可以在Android 12中请求位置权限升级?

在 Android 12 中,如果应用通过 ACCESS_FINE_LOCATION 请求精细位置权限,用户可能会选择仅授予粗略位置权限。不幸的是,并非所有 API 都适用于粗略定位...

回答 1 投票 0

Android 14 - 从未询问或授予 ACCESS_FINE_LOCATION

我的Manifest.xml: 我的 Manifest.xml: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus"/> <uses-feature android:name="android.hardware.location.gps" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application .... <service android:name=".service.LocationService" android:enabled="true" android:exported="false" android:foregroundServiceType="location" android:stopWithTask="true"/> </application> </manifest> 然后我在主活动中请求权限的代码如下: ActivityResultLauncher<String[]> permissionRequest = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(), result -> { boolean hasAllPermissions = true; for (Boolean value : result.values()) { hasAllPermissions = hasAllPermissions && value; } if (hasAllPermissions){ startLocationService(); } else { needsPermissionsDialog.show(); } }); private void checkPermissions() { permissionRequest.launch(new String[]{ Manifest.permission.INTERNET, Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.POST_NOTIFICATIONS, Manifest.permission.CAMERA, Manifest.permission.ACCESS_BACKGROUND_LOCATION, Manifest.permission.FOREGROUND_SERVICE, Manifest.permission.FOREGROUND_SERVICE_LOCATION }); } private void startLocationService(){ if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { if (locationService == null) { Intent locationServiceIntent = new Intent(MainActivity.this, LocationService.class); startForegroundService(locationServiceIntent); bindService(locationServiceIntent, locationServiceConnection, 0); } } else { Toast.makeText(this, "Missing location permission", Toast.LENGTH_SHORT).show(); } } 从应用程序登录屏幕(什么是简单的 PIN 码解锁屏幕)返回后调用 checkPermissions() 函数。 我还尝试将调用放入 onCreate() 和 onStart() 方法作为第一步,但没有什么区别。行为始终都是一样的。始终无法授予 FINE_LOCATION 权限 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == LOGIN_ACTIVITY_REQUEST) { if (resultCode == RESULT_OK) { checkPermissions(); ... 在较旧的 Android 上,它可以 100% 正常工作,没有任何问题,服务已启动,我可以绑定到它,并获取位置更新。 然而,在 Android 14 上,ActivityResultContracts.RequestMultiplePermissions() 结果具有 false 表示 ACCESS_FINE_LOCATION 权限。 当我在应用程序的(android)设置中关闭权限时,它会请求权限(参见图片),但它只为 ACCESS_BACKGROUND_LOCATION 授予权限,并且 ACCESS_FINE_LOCATION 结果仍然为 false。 如果我从清单中删除 ACCESS_BACKGROUND_LOCATION,应用程序 (android) 设置中的位置权限选项就会消失。如果将其从 permissionRequest.launch() 列表中删除,我不会收到任何允许位置访问的提示。 如果我在任何地方(列表或清单)添加/替换 FINE 为 ACCESS_COARSE_LOCATION 也没关系。结果它也总是错误的。 所有其他权限请求对话框都工作正常。 该问题在 2 个小米和 1 个 Pixel 设备上重复出现,因此它甚至不是特定于设备的。 附注我知道这是我在这个主题中的第三个问题,但这也是我的第三次实现,但仍然没有结果。 尝试按照谷歌建议的方式实施: 首次请求粗略和精细位置权限,一旦获得批准,则仅请求ACCESS_BACKGROUND_LOCATION。这只能通过导航到应用程序的权限设置来允许。 public static void requestPermissions(Activity activity) { // Request foreground permissions first String[] foregroundPermissions = new String[]{ Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION }; ActivityCompat.requestPermissions(activity, foregroundPermissions, REQUEST_FOREGROUND_PERMISSIONS); } private static final int REQUEST_FOREGROUND_PERMISSIONS = 1; public static void onRequestPermissionsResult(Activity activity, int requestCode, int[] grantResults) { super.onRequestPermissionsResult(requestCode, requestCode, grantResults); if (requestCode == REQUEST_FOREGROUND_PERMISSIONS) { if (hasPermissions(activity, foregroundPermissions)) { // Permissions granted, check for Android version and request background permission if needed if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { String[] backgroundPermission = new String[]{Manifest.permission.ACCESS_BACKGROUND_LOCATION}; ActivityCompat.requestPermissions(activity, backgroundPermission, REQUEST_BACKGROUND_PERMISSION); } else { showBackgroundLocationControls(activity); } } else { Toast.makeText(activity, "Location permission denied", Toast.LENGTH_SHORT).show(); } } else if (requestCode == REQUEST_BACKGROUND_PERMISSION) { if (hasPermissions(activity, new String[]{Manifest.permission.ACCESS_BACKGROUND_LOCATION})) { // Implement your logic to show BackgroundLocationControls here } else { Toast.makeText(activity, "Background location permission denied", Toast.LENGTH_SHORT).show(); } } } private static boolean hasPermissions(Activity activity, String[] permissions) { for (String permission : permissions) { if (ContextCompat.checkSelfPermission(activity, permission) != PackageManager.PERMISSION_GRANTED) { return false; } } return true; } 请完整阅读这篇文章,并尝试以相同的方式和这个链接实现。 注意:Google Play 商店有一个关于设备位置的位置策略,限制后台位置访问需要其核心功能并满足相关策略要求的应用程序。 ACCESS_BACKGROUND_LOCATION弹出窗口: 归因于 - https://www.paget96projects.com/guides/android-app-background-location-permission-and-play-store#google_vignette 如果您仍然遇到任何问题,请参阅此包。 https://github.com/android/platform-samples/tree/main/samples/location/src/main/java/com/example/platform/location/permission

回答 1 投票 0

使用 Android 应用程序打开坐标时“仅一次”与“始终询问”

Android 中有打开坐标的 API 可以显示默认值吗?就像是: 使用此应用程序打开:“仅一次”与“始终”对话框,它将向您显示所有

回答 1 投票 0

获取Android开发中的当前位置

我有一个服务工作线程每 10 分钟运行一次,每次运行时都需要获取当前的纬度和经度,我一直在使用以下代码: 私有变量 fusedLocationClient:

回答 1 投票 0

使用 locationManager 时已弃用 android Criteria

在我的andorid应用程序中,我正在获取用户的位置。但是当用户没有打开 GPS 或网络时,我试图获取最后的位置: if (!isGPS && !isNetwork) { 显示设置...

回答 1 投票 0

Android 应用程序中 Google 地图时间线和 getLastLocation() 之间的差异

我开发了一个Android应用程序,它每分钟调用getLastLocation()函数来记录坐标。 然而,我发现 Android Go 记录的坐标之间存在差异......

回答 1 投票 0

为什么模拟位置会跳回真实位置

我使用 LocationManager.GPS_PROVIDER 作为提供程序名称添加了一个测试提供程序,如此处所述 https://mobiarch.wordpress.com/2012/07/17/testing-with-mock-location-data-in-android/ 在谷歌地图中...

回答 4 投票 0

在 Jetpack Compose 应用程序上,有没有办法使用 LocationServices.getFusedLocationProviderClient 查询一次位置值

我试图了解如何在使用 Jetpack Compose 开发的 Android 应用程序中使用位置服务。经过一些教程后,我遇到了;我编写了以下代码组件来解...

回答 2 投票 0

位置更新的建议间隔是多少才能获得实时车速?

现在我有这样的位置更新设置: 私有常量值 LOCATION_MIN_TIME_INTERVAL = 200L private val locationRequest = LocationRequest().apply { 间隔 = LOCATION_MIN_TIME_INT...

回答 1 投票 0

Location.bearingTo 值与 SensorManager.getOrientation 不同

在我的代码中,我使用 location.bearingTo 检索目标位置的方位角。另外,我将手机指向该位置,因此 SensorManager.getOrientation 也会返回方位角。但是

回答 1 投票 0

ACTION_LOCATION_SOURCE_SETTINGS:无法解析或不是字段

我通过 Intent 调用 ACTION_LOCATION_SOURCE_SETTINGS。它显示无法解析或不是从外部导入项目时引起的字段。我现在应该怎么做 ? 意图视图Intent = ...

回答 3 投票 0

GnssClock 方法 getFullBiasNanos 在每次回调时返回一个递减的数字,而根据定义它应该增加

GnssClock类中的方法public long getFullBiasNanos()定义为: GPS内部硬件时钟(getTimeNanos())的区别 接收器和自 0000Z 以来的真实 GPS 时间,Ja...

回答 2 投票 0

如何在Android Studio模拟器中手动设置位置

我有一个项目,我需要将位置设置为印度。但在我的模拟器中我没有得到位置。 我需要获取印度的位置 当我从模拟器中获取谷歌地图时,我...

回答 8 投票 0

如何在 Android 中创建位置请求? “LocationRequest.create()”现已弃用

LocationRequest.create() “此方法已弃用。请改用 LocationRequest.Builder。”文档中说。但我不知道如何使用它。 位置请求 位置请求 = 位置R...

回答 2 投票 0

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

我正在开发一个Android应用程序,它处理使用GPS捕获位置坐标。 我还获取了最后已知的位置详细信息(通过 locationManager.getLastKnownLocation(LocationMa...

回答 7 投票 0

对于低于 23 的 API(API 21 和 22),位置不会返回任何内容

我的位置服务在 API >=23 上运行得很好,但对于 API 21 和 22 没有显示任何内容。这是我的位置方法(请注意,我使用的是片段): /*if (!Permissions) { //位置许可...

回答 1 投票 0

Location.getProvider 始终返回“fused”而不是 GPS 或网络

我正在使用融合位置API: 位置请求 = LocationRequest.create(); locationrequest.setInterval(间隔); locationrequest.setFastestInterval(间隔);

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.